2017-08-18 86 views
0

我使用jqGrid作爲大型mongo數據庫的前端。用戶想要使用jqGrid過濾器來查看數據庫中的數據。我確信在我們實施它時表現良好。過濾器已經傳遞並應用於mongo數據集,並且一切工作都正常。jqGrid虛擬滾動,拖動滾動條,請求所有頁面

但現在如果他們將滾動條向下拖動到網格中點,則需要很長時間才能獲取記錄以填充該視圖。我打開了與我們的mongo數據庫接口的ajax的日誌記錄,以記錄來自jqGrid的頁面的請求。 mongo中的這個數據集包含大約54,000行。

當網格第一次加載時,它正確地從數據庫請求頁面1。如果我慢慢向下翻頁,它會要求填寫我的視口。如果我將滾動條快速拖到中點並釋放它,那麼jqGrid會在我拖動滾動條和釋放它的位置之前,請求頁面之間的每一頁。在這種情況下,我從第1頁開始,它要求輸入第2,3,4,5,6,...,460頁。這大約有460個單獨的頁面請求。

我認爲我們最初測試了這個,看到它跳過了它不需要的頁面,並直接進入我們發佈滾動條所需的頁面。

我誤解了虛擬滾動的工作原理嗎?它是否要求從文件開始到我想查看的頁面的每一頁?我似乎無法在文檔中或通過谷歌搜索找到這種程度的細節,看看它應該如何行事。

+0

這是一個好主意,告訴哪個版本的jqGrid被使用。這將有很大幫助。 [Guriddo jqGrid](http://www.guriddo.net)沒有經過每一頁的例子可以在[here]找到(http://www.guriddo.net/demo/demos/jqgrid/paging/scrollbar/) default.php) –

回答

0

謝謝託尼。訣竅是你設置滾動選項。真或1(一)有非常不同的行爲。從滾動選項的文檔「創建動態滾動網格,啓用時,頁面元素被禁用,我們可以使用垂直滾動條來加載數據,當設置爲true時,網格將始終保存從開始到結束的所有項目最後一個點,當scroll設置爲一個整數值時(例子1),網格將只保存可見的線。「

+0

這就是我們要求舉例的原因,因爲重現每一個有問題的情況是非常困難的。 –