ASP.NET View State 缓存与 NCache

通过减少返回给 Web 客户端的负载,显着提高 ASP.NET 响应时间。 ASP.NET 应用程序必须处理成为性能开销的视图状态。 和, NCache 帮助你 缓存视图状态 在 Web 服务器上,并向用户的浏览器发送更小的有效负载,其中仅包含此 ViewState 的唯一令牌。

为什么要缓存视图状态?

View State 是一个加密的文本字符串,包含 Web 表单控件和小部件的状态,并被发送到用户的浏览器以在回发时保留此状态。 对于具有大量控件、DataGrid 控件或其他一些复杂控件的表单,视图状态可能会变得非常大。 以下是您应该考虑缓存视图状态的一些原因。

  • 大型表单和 DataGrid 上的视图状态很大(数十 kb)
  • 大视图状态减慢页面下载时间
  • 大视图状态减慢回发请求时间
  • 可以在 WFE 服务器上缓存视图状态并仅向用户发送令牌
  • 查看状态缓存分布到场中的所有 WFE 服务器

创新中心 NCache 缓存视图状态?

视图状态包含在 Web 请求的响应中,作为称为 __VIEWSTATE 的隐藏表单字段。 在保存视图状态阶段的所有页面访问中,Page 类收集其控件层次结构中所有控件的集体视图状态,并将状态序列化为 base-64 编码字符串。 下面是一个视图状态的例子。


<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE"  value="/wEPDwUJNzg0MDMxMDA1D2QWAmYPZBYCZg9kFgQCAQ9 kFgICBQ9kFgJmD2QWAgIBDxYCHhNQcm...ZpZ2F0aW9uTWVudQ8PZAUK QWxsIGluIE9uZWQiMPVaPthHdSA3rH8zgoNOvWxd4w=="/>


一旦 NCache 缓存这个视图状态,它用自己的数据替换“id”和“value”字段。 这是一个例子。

<input type="hidden" name="__NCPVIEWSTATE" id="__NCPVIEWSTATE" value="vs:cf8c8d3927ad4c1a84da7f891bb89185" /> <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="" />


请注意,它是如何保留原始“__VIEWSTATE”隐藏字段的,所以一切都像没有视图状态一样工作。 但是,它插入了自己的“__NCPVIEWSTATE”字段,当用户向 Web 服务器发出回发请求时,它将读取该字段。 NCache 使用“值”作为键从内存缓存中获取相应的原始视图状态并将其提供给 ASP.NET 页面,以便它可以使用来自视图状态的数据填充 Web 表单。

而且,由于内存缓存在所有 WFE 服务器之间分布和同步,即使回发请求发送到场中与创建视图状态的原始服务器不同的 WFE 服务器, NCache 能够在缓存中找到视图状态值。

接下来做什么?

NCache 更多信息
下载免费 30 天安装密钥
请求个性化的现场演示
阅读产品文档

联系我们

联系电话
©版权所有 Alachisoft 2002 - 版权所有。 NCache 是 Diyatech Corp. 的注册商标。