satır

2015-11-08 16 views
8
bilinmeyen numara ile serverside işleme datatables

datatables rocordsTotal sayımı peşin bilinen olmayan verilerin server-side almak için herhangi bir destek var mı?satır

Toplam sayımı almak için sorgunun, yalnızca tüm kayıtları sorgulamak kadar pahalı olduğu verilere sahibiz. Veri dosyalarının kayıtlarınınToplam sayımının bilinmediğini bilmesinin bir yolu olsaydı ihtiyaç olurdu. Bu işlevsellik belgelenmemiştir. Destekleniyor mu?

Güncelleştirme 1: Sanırım sorunumu tamamen açıklamam ve soyut bir sürüm sormaya çalıştım. Datatables.net/extensions/scroller eklentisini kullanıyorum ve ajax seçeneği ile çalışıyor. recordsTotal için büyük bir sayı kullanırsam, kullanıcı düğmeyi kullanabilir ve orada gösterilecek veri yok. Aynı şey sayfalandırmada doğrudur, kullanıcı mevcut olmayan bir sayfa numarasına tıklayabilir.

+0

bu sizin ya da değil alakalı olup olmadığını (ben hiç kullanmadım postgresql) bilmiyorum Ne tür bir veritabanı ile çalışıyorsunuz? Ne tür bir tablo/görünüm budur, çünkü toplam satır sayısını almak çok zaman alır? – davidkonrad

+0

@davidkonrad https://wiki.postgresql.org/wiki/Slow_Counting –

+0

DataTable'ın temel sunucu tarafı örneği - http://datatables.net/extensions/scroller/examples/initialisation/simple.html - görünmüyor TotalRecords'ı kullanarak. Gerçek kurulumunuzun jsfiddle'ınız var mı? – jjbskir

cevap

3

"TotalRecords" tarafından farzedersem, sunucunun veri kümelerine döndüğü nesnede "recordsTotal" alanını kastediyorum. Arama ölçütlerinizi karşılayan bir sonraki N sayfası için bir numara alabilir, bu değeri "recordsFiltered" ve "recordsTotal" olarak atayabilir ve "dom" seçeneğiyle toplam kayıt sayısını gösteremezsiniz: http://datatables.net/reference/option/domnot i . Yerleşik bir işlev değildir, ancak tablo sayısını önceden bilmemek için yapılabilecek bir çözümdür.

Bunu yapmak, Veri Sayfaları'nın, "recordsFiltered" alanı üzerinden bakması için en az N tane daha sayfanız olduğunu bilmesini sağlar, böylece sayfalama doğru şekilde çalışır. Bu şekilde Datatables, çalışmak için sahip olduğunuz toplam kayıt sayısını tam olarak bilmek zorunda değildir.

Veri özetinizi tablonun altından özelleştirmek için footerCallback seçeneğini de kullanabilirsiniz. Burada bir göz atın: https://datatables.net/examples/advanced_init/footer_callback.html

Ayrıca, size postgresql kullandığınız Bir yorumda beri, ben https://wiki.postgresql.org/wiki/Count_estimate

+0

Çok teşekkür ederim, ** i ** seçeneği sorunlarımdan birini çözüyor. ** footer_callback ** kullanmak gerçekten faydalıdır. Problemimi tamamen orijinal soruda açıklamamıştım, soyut bir versiyon sormaya çalıştım. https://datatables.net/extensions/scroller/ eklentisini kullanıyorum ve ** ajax ** seçeneği ile çalışıyor. ** recordsTotal ** için büyük bir sayı kullanırsam, kullanıcı düğmeye basabilir ve orada gösterilecek veri yok. Aynı şey sayfalandırma ile doğrudur, kullanıcı mevcut olmayan bir sayfa numarasına tıklayabilir. –

+0

Başka bir seçenek için bir fikriniz varsa, gerçekten takdir edeceğim, aksi takdirde iki gün daha bekleyeceğim ve cevabınızı kabul ediyorum.teşekkürler :) –

+0

Rasgele büyük bir sayı kullanmayın. Sadece bulunduğunuz sayfanın ve sonraki sayfaların bir kısmını var olduklarından emin olun, sonra da her iki kaydı ayarlayınToplam ve kayıtları bu sayıya göre ayarlayın. Bu, masanın tam sayımından daha hızlı olmalıdır. – Jakotheshadows