编写高性能Web应用程序的10个技巧(3)

分类: asp.net技巧   出处:iocblog整理  更新时间:2008-12-26   添加到收藏  

       本文就不讲述步骤了,请阅读 brad wilson 的文章,网址是 iis6 compression。还有一篇有关为 aspx 启用压缩的知识库文章,网址是 enable aspx compression in iis。但是您应该注意,由于一些实施细节,iis 6.0 中不能同时存在动态压缩和内核缓存。

 

技巧 10 ― 服务器控件视图状态
 

 

       视图状态是一个有趣的名称,用于表示在所生成页的隐藏输出字段中存储一些状态数据的 asp.net。当该页发回服务器时,服务器可以分析、验证、并将此视图状态数据应用回该页的控件树。视图状态是一个非常强大的功能,因为它允许状态与客户端一起保持,并且它不需要 cookie 或服务器内存即可保存此状态。很多 asp.net 服务器控件都使用视图状态来保持在与页元素进行交互期间创建的设置,例如保存对数据进行分页时显示的当前页。

 

       然而使用视图状态也有一些缺点。首先,当页被服务或被请求时,它都会增加页的总负载。对发回服务器的视图状态数据进行序列化或取消序列化时,也会发生额外的开销。最后,视图状态会增加服务器上的内存分配。

 

       几个服务器控件有过度使用视图状态的趋势,即使在并不需要的情况下也要使用它,其中最著名的是 datagrid。viewstate 属性的默认行为是启用,但是如果您不需要,则可以在控件或页级别关闭。在控件内,只需将 enableviewstate 属性设置为 false,或者在页中使用下列设置即可对其进行全局设置:

 

<%@ page enableviewstate="false" %>
 

       如果您不发回页,或者总是针对每个请求重新生成页上的控件,则应该在页级别禁用视图状态。

 
小结
 

       我为您讲述了一些我认为在编写高性能 asp.net 应用程序时有所帮助的技巧。正如我在本文前面部分提到的那样,这是一个初步指南,并不是 asp.net 性能的最后定论。(有关改善 asp.net 应用程序性能的信息,请参阅 improving asp.net performance。)只有通过自己的亲身体验才能找出解决具体性能问题的最好方法。但是,在您的旅程中,这些技巧应该会为您提供一些好的指南。在软件开发中,几乎没有绝对的东西;每个应用程序都是唯一的。

 

请参阅提要栏“common performance myths”。

 

rob howard 是 telligent systems 的创始人,专门从事高性能 web 应用程序、知识库管理和协作系统方面的工作。rob 以前受雇于 microsoft,他在那里帮助设计了 asp.net 1.0、1.1 和 2.0 的基础结构。要联系 rob,请访问 rhoward@telligentsystems.com。


 原文链接:http://msdn.microsoft.com/msdnmag/issues/05/01/aspnetperformance/default.aspx

上一页 [1] [2] [3]



文章整理:iocblog
版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。