JQgrid在渲染时完全挂起浏览器

时间:2016-03-15 15:41:35

标签: javascript jquery json jqgrid

当我尝试使用JSON作为数据源将大约10000条数据记录加载到JQGrid时,我遇到了一个问题。

浏览器在此时冻结或未响应约5分钟。我的自定义加载程序也挂在浏览器上,页面的进度没有显示。

如果JQgrid的渲染需要花费时间,那就没关系,但是我想至少让我的装载机旋转以获得进展。

尝试了所有这些让装载机旋转的方法..但没有任何工作。

任何人都可以帮我在渲染Jqgrid时显示加载程序。

loadui : "disable",
        loadtext: "Loading...",
        beforeRequest : function () {
                $("#testGrid").block();

                $('.loading').show();

                $("#testGrid").closest(".ui-jqgrid").find('.loading').show();

            $(".loading").css("display", "block");

            $(this).block({
                message: '<img src="/images/loader.gif" />',
            });            },

谢谢,

1 个答案:

答案 0 :(得分:1)

我建议您执行以下操作:

  1. 使用本地数据分页:例如,使用rowNum: 20height: "auto"
  2. 永远不应该修改loadCompletegridComplete内部循环中的网格数据。而不应该使用rowattr来设置行的CSS样式(赋值类)(请参阅the answer)和cellattr来设置某些列的单元格的CSS样式(赋值类)(请参阅the answer)代码示例。
  3. 升级到free jqGrid的最新版本(现在是4.13.1)
  4. 如果您在用户可以看到的页面上填充更多行,那么您只需要强制执行不需要的工作。它使页面缓慢。如果使用10000个元素修改页面的一个元素,则Web浏览器必须重新计算所有其他9999元素的样式和位置。如果你在循环中进行这样的修改,那么你的页面非常慢。