用asp.net做的的页面上有个hidden里面很多代码是什么意思
由于HTTP连接属于无状态的,每次页面请求都无法记录上次请求页面的信息。
那么要保存上次请求页面上控件的值,也就是页面刷新后,填写的值不变,比方在textbox填了个‘a’,页面刷新后还是'a',.NET框架为实现这种机制,于是就用到了viewstate视图状态来保存这些控件的值,
那么将所有控件的值存在什么地方呢?也就是你看见的进过序列化后都存在隐藏域里input type="hidden" name="__VIEWSTATE",然后服务器接收后会反序列化这些隐藏域的值然后又从新给这些控件赋值,从而页面刷新后还能记录上次请求时候的所有控件的值。
以上为基本原理。
现在搞点实际的,VIEWSTATE是个极其浪费性能的东西,因为每次都要反序列化与序列化,如果你的VIEWSTATE保存了太多的值,那么将导致网页速度载入过慢,所以你的网站网页打开超费劲。
这个时候该怎么办?
一:关闭VIEWSTATE视图状态,每个服务器控件都会有个
EnableViewState的属性,这个属性也就是是否要使用视图状态记录值
设置为true为记录,设置为false不记录,可以做个测试放个textbox设置为EnableViewState为false,然后输入个值,然后再用按钮去刷新页面,那么textbox又会为空。这个时候可以将页面上刷新后不需要记录状态的都设置为flase,比方通常的查询,每次查询都需要重新绑定数据,这个时候可以设为false来提高性能,这也就是大家常说用来显示数据的控件,都很喜欢用repeater而不用gridview或datagrid,因为repeater不会输出过多的VIEWSTATE,完全自己手写代码,而gridview将产生大量的VIEWSTATE,虽然封装的很好,用起来很方便,有得必用失,极其浪费性能,自己做个测试查看源文件对比下VIEWSTATE就晓得了。
二:通过压缩工具对VIEWSTATE进行压缩,有的地方也没办法,一定要用到VIEWSTATE,那么也只能去压缩他了。
希望对你有帮助,嘿嘿都是自己写的,喝口水先,我就晓得这2种方法,如有找到更多方式,麻烦发个短消息给我。
多重随机标签
微型小货车十大排名 山东亿维集团有限公司怎么样 秦皇岛哪里有便宜的二手家具哪 标准电脑多少内存条 湖北省鄂州市梁子湖区的电话区号是什么 衡十三招生办电话 万国光履历 华人传媒华人传媒是什么 天津微时代电子商务有限公司怎么样 住房和城乡建设电工证有高压吗 池州电脑维修在哪 江苏澄星磷化工股份有限公司的概念内容 六安市社保个人查询网 寻求出口食品企业备案的资料模板 南昌大学先进制造学院李小兵教授主要从事哪个项目研究 在交易猫买的号被冻结要身份验证怎么办 2月合肥公交变动情况站点调整 翻咔已匹配是什么意思 河南帅翼驰建筑模板技术有限公司怎么样 建行吉林省分行信用卡部工资待遇 怎么把仪器说明书做成二维码 衡水兰莎商贸有限公司怎么样 江苏博御劳务外包服务有限公司怎么样 分析一个企业的营销策略应该从哪几个方面着手 王鹤棣真名 昆山哪个企业最好 关于旅行的唯美句子 关于旅行的诗句有哪些 被钓鱼网站封号求解 爱百分英语扫描笔乌鲁木齐哪个区有卖的 成都哪里有狗市