客户端jqgrid与服务器端jqGrid之间的性能差异

时间:2013-04-04 14:41:10

标签: jqgrid jqgrid-asp.net mvcjqgrid

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

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

1 个答案:

答案 0 :(得分:0)

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

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

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

  • 如果我使用loadonce: true大约1000行以下的行数,那么客户端分页,排序和数据过滤
  • 如果总行数大于10000我总是使用服务器端分页,排序和过滤

您的环境(网络,到服务器的往返时间等)可能是其他的。所以当你应该更好地用户端持有数据和服务器端持有时可能是其他的边缘。然而在实践中使用loadonce: true可能非常有效

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