viewstate


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

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

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

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

追问

    小弟问得比较细,追加分

    关于hidden,就是我提到的,如果页面上很多控件都需要保存控件状态,每个控件都要一个hidden,貌似就比较麻烦了.
    cookie保存的数据量不能超过4K,为什么呢?没听说过.

    html5了解得不多....请问大虾能简单给我讲讲它的客户端存储功能是怎么用的么(或者给个相关的链接),小弟搜索,结果出来的全是"html5客户端数据库存储"的相关文章...

    为什么压缩ViewState没有实际应用价值呢

回答

    关于hidden,就是我提到的,如果页面上很多控件都需要保存控件状态,每个控件都要一个hidden,貌似就比较麻烦了.
    ==
    1. 不是每个控件的每个属性都需要存储,如果只是重要属性,可以禁用视图状态,使用ControlState来代替
    2. 控件的基本属性(每控件只有1个),比如文本框的Text,DropDownList的Value可以通过表单的方式获取到
    3. 我刚才说过,可以把多个需要的数据放在1个hidden控件里,用自定义的格式(比如字符串拼接)保存

    cookie保存的数据量不能超过4K,为什么呢?没听说过.
    ==
    cookie有两种,临时cookie,永久cookie
    每网站cookie数量不能超过20个(不同浏览器不同),大小不能超过4K,而且只能是string类型
    至于大小,你想想就明白,如果不限制,服务器的数据把客户端的硬盘撑爆怎么办?

    html5了解得不多....请问大虾能简单给我讲讲它的客户端存储功能是怎么用的么(或者给个相关的链接),小弟搜索,结果出来的全是"html5客户端数据库存储"的相关文章...
    ==
    html5的客户端存储使用的就是sqllite数据库,你可以看下

    为什么压缩ViewState没有实际应用价值呢
    ==
    1. 每次压缩,解压数据会导致页面逻辑的复杂度,除非能有一个很好的模型简化这样的操作比如自定义页面基类完成了这样的操作,所有的页面无须写多余的代码,否则无意义。在我所接触的项目中,所有优化性能的手段首先考虑的是系统的瓶颈。
    2. 在大多数情况下我们考虑的是尽量减少返回的数据,只返回需要的数据

原文地址:https://www.cnblogs.com/jrmy/p/14316358.html