jqGrid由ASP .NET MVC2应用程序中的远程json数据提供支持。 在页面加载时,两个请求被发送到服务器:一个用于检索具有colmodel的整个html页面,另一个用于由jqgrid调用以检索数据。
colmodel存储在数据库中,取决于用户权限和用户配置。创建colmodel需要多少次sql server调用。
这两个请求都需要在服务器中构建colmodel。对于数据检索,需要使用colmodel来获取正确的列数以构建select语句。
目前,每个请求都会为此colmodel构建两次。还需要返回总记录数,这对于大数据来说很慢(导致PostgreSql服务器中的整个结果扫描)。
如何加快速度? 如何只构建一次colmodel并在同一请求中发送它和数据?
答案 0 :(得分:1)
我同意jqGrid的扩展以支持每个一个 Ajax加载colModel
的某些部分将非常有用。大约一年,我发布了the feature request。
你现在可以做什么:
userData
部分内发送信息。为了在许多隐藏列中获得更好的效果,我建议您在showCol
内调用hideCol
或beforeProcessing
,然后隐藏/显示空网格上的列。它会显着加快showCol
或hideCol
的效果。如果需要,您可以添加clearGridData
。colModel
。我不明白为什么它应该慢。一切都取决于您的实施。无论如何,我确信可以很快地进行检索。records
字段并将total
设置为page
+ 1 < / strong>即可。它使寻呼机的“下一步”按钮变得简单。仅当您返回较少的行作为total
(每页的行数)时,才应将page
设置为rows
。在大多数情况下,检测最后一页将是一个很好的标准。您还可以在寻呼机湖上隐藏一些字段“最后”按钮和显示总页数的sp_1_...
范围。您可以通过使用pgtext : "Page {0}"
选项或pginput: false
的使用来完成此操作,根本没有寻呼机输入。 viewrecords
应为false
(默认值)。完成所有自定义后,您无需计算记录总数,并且在大数据的情况下可以提高数据库请求的性能。