没有会话的asp.net服务器端viewstate

时间:2009-10-08 20:40:43

标签: asp.net viewstate

所以我尽最大努力最小化我在ASP.net ajax应用程序上的viewstate,http压缩,在隐藏字段中禁用viewstate,但是想要更进一步。所以在研究之后似乎有两种方法

a)使用ASP.net 1.x方式,它使用LoadPageStateFromPersistenceMedium

b)或使用ASP.net 2.x方式SessionPageStatePersister

所以B看起来并不好看,因为如果我理解正确,那么viewstate会链接到会话ID,因为我的会话可能会因为我想要的任何原因而过期。

那么在依赖于会话的服务器上保存viewstate的最佳方法是什么?

如果它是LoadPageStateFromPersistenceMedium并使用隐藏字段,那么如何将带有随机ID的隐藏字段注入页面?

如何确定清除服务器上的视图状态文件的时间?

2 个答案:

答案 0 :(得分:0)

我认为你应该认真考虑Session选项。它在资源上是最优的,即使会话到期,如果您的Auth机制与会话超时相对应,也不是问题。

http://professionalaspnet.com/archive/2006/12/09/Move-the-ViewState-to-Session-and-eliminate-page-bloat.aspx

作为后备,您可以实现一个Page Base,将会话ID放入ViewState,在回发时检查它,是否与要恢复的某些操作不同。

您唯一的另一个选择是创建自己的使用数据库或其他数据存储的PageAdapter。

答案 1 :(得分:0)

尝试Flesk ViewState Optimizer怎么样?

有几个选项,包括存储在会话中,数据库中等等。