【问题标题】:jqgrid with large local data sets具有大型本地数据集的 jqgrid
【发布时间】:2009-12-21 14:51:49
【问题描述】:

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

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

在一些较大的数据集上,这会导致浏览器在 IE 和 FF 中显示“javascript is using too many resources...quit/continue”消息,通常在几次“Continues”后一切正常。这适用于约 2000 行的数据集。

我可以用 setTimeout 把它分成几个块,但这感觉很笨拙。

使用 jqgrid 3.3 版。

【问题讨论】:

    标签: javascript jquery jqgrid


    【解决方案1】:

    我的第一个想法是 2000 行通常对于单个页面来说太多了;用户将无法处理那么多信息。如果他们出于某种原因确实一次需要它,可能值得将其导出为 CSV,因为这通常可以更轻松地完成人们想要对 2000 行数据执行的各种操作,例如,任意统计。

    我的下一个想法是,如果您仍然需要这样做,您可以尝试升级到最新版本的 jqGrid(当前为 3.6.1),希望他们已经对这条路径进行了一些优化。

    另一个想法:如果您使用的是 JSON,您是否尝试过配置 jqGrid 以让浏览器的本机解析处理解析 JSON?它记录在页面下方的here

    一般来说,setTimeout kludges 是解决此类问题的方法,如果您真的需要它,但大多数情况下,您最好退后一步,寻找一个对您正在解决的任何问题都有不同的解决方案。

    【讨论】:

    • 我也这么认为。这是一个更大的应用程序中的一个边缘案例,它必须以某种方式优雅地处理——我无法为这种情况切换齿轮。感谢 JSON 的建议。我必须进行调查,并且必须将对数据进行的一些预处理转移到其他地方。
    • 希望它成功——我讨厌随机边缘情况占用大部分开发时间,但它似乎发生了一点。
    • 工作4个小时后,我真的厌倦了jqgrid,可能会完全放弃它。我落后了 0.3 修订版,升级根本不起作用:UI 破烂不堪,最终 .addJSONdata “不是函数”错误困扰着我。从本地数据到 javascript 对象数据并不是特别容易,而且文档记录也很差。
    • 如果你最终放弃了 jqGrid,请告诉我你选择了什么。到目前为止,它是我为 jQuery 找到的最好的网格小部件,但我肯定有兴趣了解一个更好的。
    • 我更喜欢 jqgrid,但对于本地数据处理,jquery 数据表看起来很有趣(同事更喜欢它,因为他的临时报告目的)
    【解决方案2】:

    它已经晚了(2012 年),但它仍然很有用。 使用:

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

    比 addRowData 循环更高效。

    【讨论】:

      猜你喜欢
      • 2011-03-11
      • 2012-10-10
      • 2013-12-21
      • 1970-01-01
      • 2015-08-07
      • 2012-11-25
      • 2019-02-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多