【问题标题】:Performance Difference between client side jqgrid vs server side jqGrid客户端 jqgrid 与服务器端 jqGrid 之间的性能差异
【发布时间】:2013-03-26 17:09:26
【问题描述】:

我正在开发一个使用jqGrid for ASP.NET MVC 的MVC 项目。但是我听说pure-jquery-client-side version (jqGrid) 的性能更好。这是真的?对我来说,他们似乎都在做同样的事情,只是代码在不同的地方——所有的批量工作仍然是使用 ajax 完成的。 任何建议将不胜感激。

编辑- 我使用网格的大多数地方都少于 100 行,页面大小 30,大约 10-12 列,主要是字符串和日期。只有一页我使用了 500 行的网格,但很少使用。

【问题讨论】:

  • 您能否添加有关您使用 jqGrid 的项目的更多信息?您在网格中显示的数据集有多少行(100、10000、1000000)?默认情况下,您在客户端显示的页面大小有多大。网格中有多少列? (大量的列会使网格随着行数的增加而变慢)...
  • 添加了编辑 - 我使用网格的大多数地方都少于 100 行,页面大小 30,大约 10-12 列,主要是字符串和日期。只有一页我使用了 500 行的网格,但很少使用。
  • 我很高兴看到我的答案中有一些 cmets,这是我一周前写的更多。

标签: jqgrid jqgrid-asp.net mvcjqgrid


【解决方案1】:

我认为您不应该重写现有代码,但我同意在使用少于 1000 行数据的情况下,loadonce: true 的使用是真正的替代方案。

jqGrid 的设计面向服务器端排序、分页和过滤/搜索。所以大多数在 3.7 以下版本开始使用 jqGrid 的用户已经很好地实现了后端。由于 JavaScript 代码最初设计为解释器语言,因此带有本机代码的 SQL Server 应该会更快。另一方面,当前版本的网络浏览器包含快速 JavaScript 引擎。每个新版本都会越来越多地提高 JavaScript 的性能。

对用户配对、排序或过滤操作的总时间可能很重要。它包括到 Web 服务器的往返时间。人们可以更好地在生产环境中进行精确测量,以将本地网格的性能与纯远程datatype(“json”或“xml”不使用loadonce)的网格进行比较。我自己使用的粗略规则是:

  • 如果行数低于 1000 行,我使用 loadonce: true 等客户端分页、排序和过滤数据
  • 如果总行数大于 10000,我总是使用服务器端分页、排序和过滤

您的环境(网络、到服务器的往返时间等)可能是其他环境。因此,当您应该更好地用户客户端持有数据以及服务器端持有数据时,优势可能是其他的。然而loadonce: true 的使用在实践中可能真的非常有效

我个人不使用您引用的 jqGrid 的商业版本。所以我必须自己写后端。在使用loadonce: true 的情况下,服务器代码非常简单。易于调试和维护。

【讨论】:

    猜你喜欢
    • 2011-06-20
    • 2011-06-16
    • 2016-05-12
    • 1970-01-01
    • 2012-02-20
    • 1970-01-01
    • 1970-01-01
    • 2011-04-06
    • 1970-01-01
    相关资源
    最近更新 更多