Sayfalarımdan birinde bir ızgarayı sıralamak için tablesorter kullanıyorum. Güncellenmiş stok bilgileri için her 10 saniyede bir AJAX araması yapıyorum ve şebekemi buna göre güncelliyorum. Çok fazla çalışıyor, ancak sıralama seçeneklerimi düzgün bir şekilde önbelleğe alamıyorum. Daha ziyade, sıralamayı önbelleğe almış gibiydim, ancak masaüstümde, önceki satırlarımı önbelleğe alır ve bunları yeni, sıralı satırlarla birlikte görüntüler.Neden tablolamacı eski satırlarımı önbelleğe tutuyor?
Örnek, ilk kılavuzum 10 satır veri içeriyor. İkinci sütunu sıralıyorum. 10 saniye sonra, yeni 10 satırlık bir dizi gelir, ancak ilk 10 satırım hala onları boşaltmamıza rağmen görünür. Her yerde araştırdım ve bunun cevabını bulamıyorum.
Hiçbir şekilde sıralamıyorsam ve "sorton" için tetikleyiciyi aramadım, 10 satırımı istediğim gibi aldım, ancak satırlar sıraya dizilmiyor. Bu soruyu "sorton" olarak adlandırırsam, verilerim sıralanır, ancak işlev çağrıldığında her seferinde 10 yeni satır alır (toplam 20 satır, sonra toplam satır 30, vb).
if (myResult.Data.length > 0) {
$.each(myResult.Data, function() {
myRows += "<tr><td>" + this.column1 + "</td><td>" + this.column2 + "</td></tr>";
});
$("#myTBody").empty();
// $("#myTBody").append(myRows); //tried this first
// $("#myTable").trigger("update"); // combined with this
$("#myTBody").append(myRrows).trigger("update");
var sorting = $("#myTable")[0].config.sortList;
$("#myTable").trigger("sorton", [sorting]);
}
Sadece orijinal tablesorter JS kodu bakabilirsiniz. Güncelleme işlevinde, 1ms'den sonra çalıştırılacak setTimeout işlevinde 'cache = buildCache (me); Bu, sorgunun önbellek güncellenmeden önce önbelleği kullanmasına neden olur. Böylece, eğer 100 ms sonra 'sorton'umu tetiklersem,' update '' i tetikledim, örneğin, sıralamayı sonuca ekleyen ek satırlar olmadan bitirebilirim. Lütfen yanılıyorsam beni düzeltin. – ChunLin
Çatalınızdaki aynı önbellek problemi (güncelleme -> sorton nedeniyle). – Saran