日期:2014-05-18  浏览次数:20383 次

如何保存一个页面的值。
如何像WinForm中一样,保存一个值,在用户进入这个页面时有效,刷新时依然能保存。
用隐藏控件?Session?Cookies?
几种方式各有什么优缺点?
我用TEXT保存一个值,当ReadOnly属性有效后,其值刷新时就会被清空。而ReadOnly属性无效的时候,其值刷新是可以保存。
可我的值就是不希望用户修改啊!如何解决这个问题?头痛!

------解决方案--------------------
Hidden
不可见的 TextBox 
ViewState

这三者.会增加页面字节数,并在load.save增加一点额外的开销,原理基本上差不多


Session
Cache

这二者会增加服务器开销.并且可能不稳定 session会失效.cache会过期或是在服务器资源不够时移除


cookie
会被客户端有意识或是无意识清除


------解决方案--------------------
Session可能会失效,而且增加服务器压力
Cookies不安全,而且客户端禁用了Cookies就没办法了
不希望用户修改,换个控件嘛,LABEL。。
------解决方案--------------------
你可以在postback前使用js控制readonly属性设置为false
------解决方案--------------------
1、HiddenField
优点:简单易用。url简洁
缺点:用户可以通过页面查看HiddenField中的隐私信息
2、Session
优点:简单易用。url简洁,安全性好。性能较强
缺点:稳定性差,容易莫名奇妙的丢失
3、Profile
优点:稳定性好,长久保存;数据安全性好。
缺点:性能较差,需要数据库的访问
4、QueryString
优点:容易被搜索引擎收录
缺点:同HiddenField,Url缀长
5、Cookies
优点:同HiddenField
缺点:依赖于客户端,不是所有的浏览器都支持,也不一定用户的浏览器开放次功能。