在带有loadonece的JqGrid中:true,客户端排序和过滤。支持多少数据?

时间:2012-11-19 07:49:32

标签: jqgrid

我正在使用带有loadonece: true的jqGrid。我正在使用客户端排序和过滤。当我尝试在具有8000条记录的网格中搜索时,我收到脚本无响应错误。所以我想知道数据是否存在任何限制。虽然在jqGrid文档中我没有发现loadonce:true对数据大小有任何限制。

2 个答案:

答案 0 :(得分:1)

限制非常依赖

  • 您使用的网络浏览器。例如,IE6的JavaScript引擎速度很慢,谷歌Chrome有快速引擎。每个Web浏览器的每个新版本都可以提高JavaScript的性能。
  • 您使用的jqGrid的选项。如果您使用较大的页面大小(rowNum值),则使用gridview: true选项非常重要(有关详细信息,请参阅the answer)。您应该减少setCellsetRowData等方法的使用,尤其是在循环中(例如,loadCompletegridComplete内所有行的循环)。而不应该使用cellattrrowattrcustom formatters
  • 您使用的列数(包括隐藏行)。具有许多列的网格会降低网格的性能。

一般情况下,我不会使用8000行的本地网格。大约1000行的本地网格的性能足够慢。我建议你使用服务器端分页,排序和过滤。 SQL Server实现 native 代码中的所有功能,并且可以使用数据库中的索引,可以像JavaScript一样有效地实现所有功能。

答案 1 :(得分:0)

我的项目最近遇到了大约18000条记录的相同问题。它在Chrome和Firefox上工作的时间非常合理,但是对于IE8,它会遇到你遇到的同样错误。在定义8k记录是否足够时,您需要考虑许多因素,其中一些是:

  • 您正在显示的列数
  • 您为每列使用的格式
  • 支持jqGrid
  • 中显示的数据量
  • 您拥有的初始排序逻辑。

此外,您应该考虑是否真的想要将整个8000条记录输入到浏览器中,用户将不太可能查看单个记录。如果确实需要,使用8000条记录,我建议您考虑使用服务器端分页。服务器端分页的警告是你必须在服务器端负责排序,搜索和过滤。