除了viewstate,还有什么比较好的保存控件状态的方法?

2024-12-28 09:39:29
推荐回答(2个)
回答1:

1. ViewState会使页面内容变大,导致页面加载变慢
2. 如果你的页面根本没有回发,启用ViewState是无意义,典型的如一个展示页面,如果有按钮也是跳转到其他页面,这样的页面可以禁用ViewState
3. 在实际开发中,ajax技术运用的很多,既然没有了整页回发,viewState的价值就降低了

回到你的问题“那么要替换viewstate,有些什么比较好的方法呢(性能上考虑能比viewstate更好)?”
==
无论如何替换,都是因为要保存这些数据,无论用何种方式,都不见得有本质的提高,因为任何一种保存控件状态的方式都有利弊,只能选择相对比较合适的,所以更应该要考虑的是,有那些数据是必须保存的?

hidden字段实际应用还是蛮多的,一般用一个hidden字段,然后固定符号分隔的方式保存多项数据
cookie保存的数据量不能超过4K,每网站有限制
可以考虑的方案有html5支持的客户端存储功能

一般提到的压缩ViewState,个人感觉无实际应用价值

回答2:

asp.net 尽量不要使用产生viewstate的控件,如果需要交互可以采用这几种方案:
1.form表单提交
2.ashx,ajax提交方案

网站设计时尽量使用标签

不是所有控件都产生viewstate,也不是所有控件都一定放在runat=server的form里才能运行,其实label repeater这类型的控件是不会产生viewstate的