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

JQgrid is hanging the browser completely while rendering

本文关键字:挂起 浏览器 JQgrid      更新时间:2023-09-26

当我尝试使用 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. 数据的本地分页:例如,只需使用rowNum: 20height: "auto"
  2. 永远不应该修改loadCompletegridComplete内部循环中的网格数据。取而代之的是,应该使用 rowattr 来设置行的 CSS 样式(分配类)(请参阅答案),cellattr为代码示例设置某些列(请参阅答案)的单元格的 CSS 样式(分配类)。
  3. 升级到最新版本的免费 jqGrid(现在是 4.13.1)

如果您在用户可以看到的页面上填充更多行,那么您只会强制执行不必要的工作。它使页面变慢。如果您使用 10000 个元素修改页面的一个元素,则 Web 浏览器必须重新计算所有其他 9999 个元素的样式和位置。如果你在循环中进行这样的修改,那么你的页面就会非常非常慢。