7
votes

Pourquoi mon tableporter continue-t-il à mettre en cache mes vieilles rangées?

J'utilise des tablesorter pour trier une grille sur l'une de mes pages. Je fais un appel Ajax toutes les 10 secondes pour les informations de stock mis à jour et mettez à jour ma grille en conséquence. Cela fonctionne beaucoup, mais je ne peux pas obtenir mes options de tri correctement pour mettre en cache correctement. Au contraire, il semble que je semble avoir mis en cache le tri, mais quand je le fais, TableSorter met également en cache mes rangées précédentes et les affiche avec le nouveau jeu de lignes triées.

exemple, ma grille initiale dispose de 10 rangées de données. Je trie la deuxième colonne. Après 10 secondes, un nouvel ensemble de 10 lignes entrez, mais mes 10 premières lignes apparaissent encore, même si je les ai vidées. J'ai fait des recherches partout et je ne peux pas sembler trouver la réponse pour cela.

Si je ne trie pas du tout, et je n'appelle pas la gâchette pour "Sorton", je Obtenez mes 10 rangées comme vous le souhaitez, mais les rangées ne sont pas triées bien sûr. Si j'appelle cette gâchette pour "Sorton", mes données sont triées, mais j'obtiens 10 nouvelles lignes chaque fois que la fonction est appelée (20 rangées total, puis 30 rangées totales, etc.).

Voici mon Code de l'intérieur de mon appel Ajax: xxx


0 commentaires

4 Réponses :


3
votes

hmm, qui semble être un problème avec la tableter d'origine ( démo ). < / p>

Désolé, je ne me souviens pas de la raison pour laquelle le cache n'est pas effacé pendant la mise à jour; Mais ce problème n'arrive pas dans mon Fourche de TableSorter ( Demo ).


2 commentaires

Je viens de regarder le code JS original Tablesorter. Dans la fonction de mise à jour, il appelle cache = babyCache (moi); dans une fonction de sécurité qui sera exécutée après 1 ms. Cela provoque l'utilisation du cache avant que le cache soit mis à jour. Ainsi, si je déclenche mon Sorton après 100 ms, j'ai déclenché la mise à jour , par exemple, je peux obtenir le tri effectué sans lignes supplémentaires ajoutées à la résultat. Corrigez-moi si j'ai tort, s'il-vous plait.


Même problème de mise en cache (causé par la mise à jour -> Sorton) dans votre fourchette.



9
votes

Bien que ce poteau soit vieux, il y a juste quelqu'un comme moi qui cherche des corrections à la table d'origine, je corrige le problème en ayant code> tracton code> déclenché sous la méthode "retardée" suivante.

$("#myTBody").append(myRrows).trigger("update");
var sorting = $("#myTable")[0].config.sortList;
setTimeout(function () {
    $("#myTable").trigger("sorton", [sorting]);
}, 100);


1 commentaires

Cela a fonctionné pour moi aussi. La réponse ci-dessous de Saran n'a pas.



0
votes

La solution w / o Utilisation du délai d'attente: xxx

basé sur: https: // Stackoverflow .COM / A / 2013571/551962


0 commentaires

0
votes

Old Post mais récemment pris dans ce numéro, Pour moi, cela a fonctionné

$("#myTable")[0].config.cache = null;
$("#myTable").trigger("sorton");


0 commentaires