- Rongsen.Com.Cn 版权所有 2008-2010 京ICP备08007000号 京公海网安备11010802026356号 朝阳网安编号:110105199号
- 北京黑客防线网安工作室-黑客防线网安服务器维护基地为您提供专业的
服务器维护
,企业网站维护
,网站维护
服务 - (建议采用1024×768分辨率,以达到最佳视觉效果) Powered by 黑客防线网安 ©2009-2010 www.rongsen.com.cn
作者:黑客防线网安ASP维护基地 来源:黑客防线网安ASP维护基地 浏览次数:0 |
ing、integer、boolean、array、arraylist、hashtable 和自定义 typeconverter
是否增加“html 有效负载”? 否 是
使用 viewstate 获得最佳性能
使用 viewstate 时,每个对象都必须先序列化到 viewstate 中,然后再通过回传进行反序列化,因此使用 viewstate 并非是没有代价的。不过,如果遵循某些简单的原则对 viewstate 的成本加以控制,则通常不会产生明显的性能影响。
在不必时禁用 viewstate。下面的“减少使用 viewstate”一节将周详介绍这一问题。
使用优化过的 viewstate 序列化程式。上面列出的类型具有专门的序列化程式,这些程式运行速度非常快,并已过优化,能生成非常小的 viewstate。如果要序列化一个未在上面列出的类型,能创建一个自定义 typeconverter 来显着提高他的性能。
尽量减少使用对象,如果可能,尽量减少放入 viewstate 中的对象的数目。例如,不要使用二维字符串数组(名称/值,其对象的数目和数组的长度相同多),而应使用两个字符串数组(只有两个对象)。不过,在将两个已知类型存储在 viewstate 中之前,在这两者之间转换不会获得所有性能提高,因为这样做实际上相当于付出了两次转换的代价。
减少使用 viewstate
默认情况下 viewstate 将被启用,并且是由每个控件(而非页面研发人员)来决定存储在 viewstate 中的内容。有时,这一信息对应用程式并没有什么用处。尽管也没什么害处,但却会明显增加发送到浏览器的页面的大小。因此如果不必使用 viewstate,最佳还是将他关闭,特别是当 viewstate 非常大的时候。
能基于每个控件、每个页面或每个应用程式来关闭 viewstate。在以下情况中将不再需要 viewstate: 页面 控件
页面不回传给自身。
处理的不是控件的事件。
控件没有动态的或数据绑定的属性值(或对于每一个请求他们都设置在代码中)。
datagrid 控件是 viewstate 的一个重量级用户。默认情况下,在网格中显示的所有数据也都存储在 viewstate 中,当需要一个复杂的操作(如复杂的搜索)来获取数据时,这是非常有用的。不过,datagrid 的这种行为有时也使得 viewstate 成为累赘。
例如,这里有一个简单的页面就属于上述情况。因为页面不回传给自身,所以他并不必 viewstate。
图 3:带有 datagrid1 的简单页面 lessviewstate.aspx
<%@ import namespace="system.data" %>
<html>
<body>
<form runat="server">
<asp:datagrid runat="server" />
</form>
</body>
</html>
<script runat="server">
private sub page_load(sender as object, e as eventargs)
dim ds as new dataset()
ds.readxml(server.mappath("testdata.xml"))
datagrid1.datasource = ds
datagrid1.databind()
end sub
</script>
启用 viewstate 时,这个小网格会给该页面增加 3000 多字节的 html 有效负载!使用 asp.net tracing(英文)或查看发送到浏览器的页面的原始码(如以下代码所示),能清晰地看到这一点。
<html>
<head>
<title>减少页面的“html 有效负载”</title>
</head>
<body>
<form name="_ctl0" method="post" action="lessviewstate.aspx" id="_ctl0">
<input type="hidden" name="__viewstate"
value="ddwxntgzotu2oda7ddw7bdxppde+oz47bdx0pdtspgk8mt47pjtsphq8qda8cdxw
pgw8ugfnzunvdw50o18hsxrlbunvdw50o18hrgf0yvnvdxjjzul0zw1db3vuddteyxrhs
我要申请本站:N点 | 黑客防线官网 | |
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479 |