Asp.net 缓存视图状态?
Asp.net 缓存视图状态?,asp.net,caching,viewstate,Asp.net,Caching,Viewstate,这是一个好主意,但它是为SharePoint实现的。想知道是否有一个解决方案用于常规asp.net页面,它也可以缓存ViewState 其实很简单!您只需覆盖页面上的这两个方法: SavePageStateToPersistentMedium() LoadPageStateFromPersistenceMedium() 在那里,您可以获取ViewState对象树,按照您的意愿对其进行序列化,并将其存储在您想要的任何位置(会话、SQL等),而不是将整个序列化的blob返回到浏览器,只需返回一个
这是一个好主意,但它是为SharePoint实现的。想知道是否有一个解决方案用于常规asp.net页面,它也可以缓存ViewState 其实很简单!您只需覆盖页面上的这两个方法:
SavePageStateToPersistentMedium()
LoadPageStateFromPersistenceMedium()
在那里,您可以获取ViewState对象树,按照您的意愿对其进行序列化,并将其存储在您想要的任何位置(会话、SQL等),而不是将整个序列化的blob返回到浏览器,只需返回一个唯一的ID,您就可以使用它下次再次查找
这里详细介绍了这个想法:通过在
asp.net System.Web.UI.Page:
SavePageStateToPersistentMedium()
LoadPageStateFromPersistenceMedium()
在第一种方法中,您需要检查ViewState是否已存在于缓存中,如果未将其保存在缓存中,则在第二种方法中,您可以检索它(如果已存在)
您可以将SessionID和pageName连接起来作为缓存viewStateKey的键。这相当棘手。如果您的服务器很忙(因此有许多用户的页面视图状态正在缓存),并且您的视图状态缓存在您发回表单之前过期,您会怎么做?@Robert请使用不会过期的缓存或持久性介质。