具有大型本地数据集的jqgrid

时间:2009-12-21 14:51:50

标签: javascript jquery jqgrid

我正在寻找jqgrid的建议,以便从本地源添加大型数据集。现在,有一个简单的循环:

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

在一些较大的数据集上,这会导致浏览器在IE和FF中显示“javascript正在使用太多资源...退出/继续”消息,通常在几次“继续”之后一切都很好。这适用于~2000行的数据集。

我可以使用setTimeout将其分解为几个块,但这感觉很糟糕。

使用jqgrid版本3.3。

2 个答案:

答案 0 :(得分:1)

我的第一个想法是,对于单个页面,2000行通常太多了;用户将无法处理那么多信息。如果由于某种原因他们一次需要它,那么可能值得导出到CSV,因为这通常可以更容易地做出2000行数据所要做的事情,例如,任意统计。

我的下一个想法是,如果你仍然需要这样做,你可能会尝试升级到最新版本的jqGrid(目前是3.6.1),希望他们能够优化这条路径。

另一个想法:如果您正在使用JSON,您是否尝试过配置jqGrid以让浏览器的本机解析句柄解析JSON?它在页面上稍微记录了here

一般来说,setTimeout kludges是解决这类问题的方法,如果你真的需要它,但大部分时间你最好退一步看为您解决的任何问题提供不同的解决方案。

答案 1 :(得分:1)

它迟到了(2012年),但它仍然有用。 使用:

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

比addRowData循环更有效。

相关问题