2009-12-21 49 views
1

我正在尋找jqgrid的建議以從本地源添加大型數據集。現在,有一個簡單的循環:jqgrid具有大型本地數據集

grid.clearGridData(); 
for(var i = 0; i < data.length; i++) 
{ 
    grid.addRowData(i+1, data[i]); 
} 
grid.trigger(」reloadGrid」); 

而且一些更大的數據集,這將導致顯示「JavaScript是使用了過多的資源...退出/繼續」在IE和FF消息瀏覽器,通常經過數「繼續」一切都很好。這是用於〜2000行的數據集。

我可以用setTimeout將它分成幾個塊,但感覺很糟糕。

使用jqgrid的3.3版本。

回答

1

我的第一個想法是,2000行是通常是對於單個頁面來說太多了;用戶將無法處理那麼多的信息。如果他們由於某種原因一次性需要它,那麼可能值得導出爲CSV,因爲這樣做通常可以更輕鬆地完成2000行數據(例如任意統計數據)所要執行的操作。

我的下一個想法是,如果你仍然需要這樣做,你可以嘗試升級到最新版本的jqGrid(目前是3.6.1),希望他們已經優化了這條路徑。

另一個想法:如果您使用JSON,您是否嘗試過配置jqGrid讓瀏覽器的本地解析句柄解析JSON?它在頁面的一點點處記錄了here

一般來說,setTimeout組裝機是如果你真的需要它來解決這樣的事情的方式,但大多數時候,你最好退後一步,尋找不同的解決方案,以任何問題,你'正在解決。

+0

我也這麼認爲。這是一個更大的應用程序的邊緣情況,它必須以某種方式妥善處理 - 我不能切換這種情況下的齒輪。感謝JSON的建議。我必須進行調查,並且必須將發生在數據上的某些預處理移動到其他地方。 –

+0

希望它能解決問題 - 我討厭隨機邊緣案例佔用了大部分開發時間,但似乎發生了相當的一點。 –

+1

經過4個小時的工作,我真的厭倦了jqgrid,並可能完全放棄它。我是.3修訂版本,升級根本不起作用:用戶界面很糟糕,最終.addJSONdata「不是功能」錯誤會讓我受到傷害。從本地數據到JavaScript對象數據不是特別容易,而且記錄非常糟糕。 –

1

它的晚期(2012年),但它仍然可能有用。 使用:

$("#gridID").setGridParam({ data: JSONData }); 
$("#gridID").trigger("reloadGrid"); 

比addRowData循環更高效。