2012-07-24 70 views
0

我正在使用jqGrid和LOAD ONCE,然後在客戶端進行分頁。當我添加過濾器工具欄時,在應用任何類型的過濾器後分頁變得非常緩慢。通過過濾器工具欄應用過濾器後,JQGrid分頁非常緩慢

$(gridElement).jqGrid({ 
     postData: post, 
     loadComplete: function (data) { 
      onLoadComplete(data); 
     }, 
     gridComplete: function() { 
      onGridComplete(); 
     }, 
     datatype: function (pdata) { 
      dataSource(pdata); 
     }, 
     colNames: columnNames, 
     colModel: columnModel, 
     rowNum: 10, 
     rowList: [10, 20, 30], 
     viewrecords: true, 
     pagination: true, 
     pager: pagerElement, 
     loadonce: true, 
     sortorder: "desc", 
     sortname: 'id', 
     cellEdit: false, 
     search: true, 
     gridview: true, 
     //rownumbers: true 
    }); 


    $("#jqGrid").jqGrid('filterToolbar',{ 
     stringResult : true, 
     searchOnEnter : false }); 

任何想法爲什麼會發生這種情況?在任何常見事件觸發(如onPaging,onGridComplete等)之前,單擊分頁按鈕時有延遲。

請注意,一旦網格完成,datatype屬性設置爲'local'。

我的猜測是,它試圖過濾每次你的網頁(或它只能一次過濾一頁?不知道)。但是可以禁用嗎?

謝謝。

+0

你有這樣的活生生的例子嗎? – 2012-07-27 19:51:18

+1

問題的根源可能是'onLoadComplete'和'onGridComplete'功能。爲什麼你需要這兩個函數而不是'onLoadComplete'?爲什麼使用'datatype'作爲函數?此外,您可以像'columnModel'一樣使用發佈的colModel。一個人需要了解你能做些什麼來幫助你。你能否在你的問題中包含更多的細節(包含代碼)?最好的將是演示再現你的問題, – Oleg 2012-07-30 10:16:49

+0

我認爲什麼Enzino發佈可能是問題..客戶端過濾loadonce:真通常慢? – 2012-07-30 16:53:34

回答

2

如果你打開替代網格庫,我建議你看看SlickGrid

我一直在使用它一段時間了。似乎是類中最好的JavaScript網格庫。 一旦你掌握了它,它的易於定製&也有相當多的插件。

+0

很多代碼雖然(單獨的文件/ http請求)。另外,作者應該將一個README.md文件添加到回購。 – 2012-08-22 05:21:58

+0

@JoeJohnson我認爲你最終會使用JS,CSS縮小器,如[YUI壓縮器](http://developer.yahoo.com/yui/compressor/)或[Closure Compiler](https://developers.google .com/closure/compiler /)或者類似於[WRO4J](http://code.google.com/p/wro4j/)的東西。 – Sujay 2012-08-22 07:05:04

3

您可能想要考慮使用DataTables(http://www.datatables.net)作爲替代。排序是,我相信整個數據集(這會使處理此腳本非常緩慢 - 然後綁定事件)。我最近研究了表格排序和網格佈局的選項 - 由於性能問題,我通過jqGrid使用了DataTables。

此外,看看獲取最新版本是否無助於加快速度...... http://www.trirand.com/blog/(6月份的新版本)。