jquery – jqGrid缓存网格数据

前端之家收集整理的这篇文章主要介绍了jquery – jqGrid缓存网格数据前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个按钮onclick它应该转到另一个页面包含jqGrid ..但如果用户想去看看它应该被缓存和显示而不是调用服务器….表单值是默认缓存但是jqGrid ……如何缓存呢?

解决方法

可以实现数据的缓存,但这并不容易.您必须在服务器端定义一些基于所选 caching strategy的HTTP头.例如,您可以使用“Cache-Control”HTTP标头的 max-age
Cache-Control: max-age=60

这意味着,服务器响应应在60秒内缓存在客户端上.如果您打算使用它,则必须定义jqGrid的其他参数prmNames:{nd:null},这将删除使用任何服务器请求中包含的时间戳发送nd参数.执行此步骤后,jqGrid使用的所有ajax请求将在时间间隔(60秒)内从本地缓存获取.

对于ETags(实体标签),可以将策略更复杂的服务器端高速缓存实现为固定的高速缓存时间.这是我最喜欢的策略,但它的实现相对复杂(详见Guidance on a better way to retain filtering options when using ASP.NET MVC 2Concurrency handling of Sql transactrion).

如果您无法使用缓存数据的方式(由于某些原因),我建议您选择以下两种变体:

>在与定义jqGrid参数的表单中的按钮和其他过滤器相同的页面上创建网格(参见How to filter the jqGrid data NOT using the built in search/filter box).
>使用与jQuery.Remove()或jQuery.Empty()和新的ajax请求相关的表单“重新绘制”页面.例如,使用jQuery(“body”).Empty()或jQuery(“div#main”).Empty()其中< div id =“main”>在身体的某个部位.然后你可以用jQuery(“body”).load(“newPage.htm”)或jQuery(“div#main”)这样的调用来填充页面体(或id为“main”的div).load(“newPage” .JSP“).

这些替代方案的优点是您将保持在同一页面上,并且可以使用所有JavaScript数据.例如,如果网格使用“loadonce:true”参数,则可以从’data’参数中获取旧的jqGrid数据,然后使用数据值作为新jqGrid的’data’参数创建新的jqGrid.

猜你在找的jQuery相关文章