使用存储在客户端隐藏的大型JSON

时间:2013-01-31 06:38:43

标签: asp.net json asp.net-mvc-3 performance

我正在处理一个有3个jQGrids的页面,我使用JSON来绑定它。致力于MVC 3应用程序。

示例,我有一个下拉列表,显示部门名称列表,如果我更改任何部门,我需要加载我的网格中该部门下的所有员工。用户经常在网格中编辑一些记录。

  

但是用户永远不会立即保存,他们会继续编辑这么多   部门员工并做一次保存。

要保留所有更改,直到用户点击全局保存,我决定将所有员工记录详细信息保存在存储在隐藏字段中的JSOn格式中。所以我从隐藏加载并绑定到基于所选部门的网格,并在用户更新网格时更新本地JSON,最后我将隐藏的JSON发送到服务器。

  

我在隐藏字段中存储了100个员工详细信息JSON数据的10个字段并使用。我知道我正在增加响应大小并发布数据   尺寸。问题是,它会影响绩效中的一个大问题吗?或者可以   我存储在会话中并从中加载?哪种方式最好?

1 个答案:

答案 0 :(得分:2)

理论上,没有其他问题,而不是页面在用户回发后发送回数据的延迟。

in real life I have see (rare but existing ones) problems在回发后有很大的字段。有些路由器,或代理它们会削减它们或阻止它们 - 我不知道实际的原因,有时它们可​​能只是愚蠢的过滤器。

为了避免这种罕见的情况发生,您可以将输入隐藏字段压缩并拆分为多个(当一个上面的大小很大时会出现问题)。

现在,会话是一个很好的解决方案,可以帮助最小化前后发送的数据。它可能会在会话中成长,如果用户打开两个相同的窗口,你必须找到一种方法和方法,会话数据必须是两个不同的。

有关如何压缩输入字段的一些示例。谈论的是viewstate,但想法是一样的:

http://www.codeproject.com/Articles/14733/ViewState-Compression

http://www.hanselman.com/blog/ZippingCompressingViewStateInASPNET.aspx

http://www.bloggingdeveloper.com/post/How-To-Compress-ViewState-in-ASPNET-20-ViewState-Compression-with-SystemIOCompression.aspx