不要滥用ViewState

    ASP.NET中提供了ViewState这样一个特性来保存页面级的状态信息;这本来是一个很不错的东西(我个人认为),不过即使是好东西一旦滥用都有可能带来很严重的后果!在Page的生命周期里会对ViewState进行加载和保存,同样会发送到客户和客户提交给服务器。当ViewState处理的东西非常多和复杂时,就会引发能性和数据传输的压力(听说ASP.NET 2.0ViewState的加载和保存提供更好的方法)

    对于一些没有了解ViewState处理细节的开发人员来说很少会关心这个问题,他们只知道ViewState使用起来很方便,更加没有想到不久之后程序会引发出严重的问题!在现实中就碰到这样的情况,一个同事问我为什么页面处理很慢的,还有就是ViewState为什么会这么庞大。于是我了解了一下发现,那个页有显示一千多条数据,每个GridItem里有都有一个DropDownList有几十个下项。简单的算一下每次刷新页面都有几万个ListItem的数据要进行加载和保存,不用说这样的效率怎样大家都能想到。还有那几万个ListItem和上千个GridItem的数据发送到客户和客户提交给服务器,一个普通的页面有这样大的数据传输量也是够恐怖的(更严重的一次就是ViewState太庞大超出了IIS的默认请求字节数~~)!

    这里同样有些东西直得开发人员去思考,作为开发人员是不是只学会如何用东西就可以呢?但是在我认识的开发人员中有很多人是这样!

posted on 2006-07-18 11:48  henry  阅读(507)  评论(0编辑  收藏  举报

导航