代码改变世界

一些提高ASP.NET性能的方法

2006-06-26 16:30  努力学习的小熊  阅读(941)  评论(0编辑  收藏  举报

禁用不必要的视图状态。

例如控件或页面的。EnableViewState属性设置为false。或者在web.config文件中进行指定。

控件的设定直接设置相应控件的EnableViewState属性即可。

页面的设定在<%@ Page EnableViewState="false" %>中设定即可。

Web.Config文件的设定,找到<pages>元素,在其中添加属性设置EnableViewState="false"即可。

 

对于安全性要求不高的页面可以通过禁用页面的EnableViewStateMAC防篡改和加密功能,也可以提供页面加载的速度。

 

将代码中的Response.Redirect跳转换成Server.Transfer命令。

Response.Redirect使客户机和服务器之间进行了两次往返,首先客户端将自己的跳转命令传给服务器,服务器对当前请求跳转的页面做出响应,返回要跳转到的页面与相应的事件响应,然后客户端接收到这个命令开始进行跳转,第二次向服务器发出新的跳转到的页面请求,然后服务器做出响应,将新的页面返回给客户端。这样就进行了两次往返。

Server.Transfer则把执行转移到应用程序的另一个页面。这是某种“服务器端的重定向”,客户端不会察觉到有重定向发生。此时客户端将跳转命令发给服务器后,页面重定向是在服务器上处理的,没有进行客户端之间的往返,直接将重定向后的页面结果发送给客户端,这样仅执行了一次客户端和服务器之间的往返,减少了一次,从而达到性能的提升。

 

谨慎使用Web控件,每个Web控件在加载时都比相应的HTML控件在服务器生成时多耗费一些资源,例如一个Lable控件,如果禁用来显示一个标题,则没有必要每次都让服务器重新生成它,直接换成几个字显示就可以了,因为这些控件必须被初始化,必须设置属性,事件必须处理等。

 

把对象放置到会话状态中,以后再使用。这是非常方便的,但这种方便性是有代价的。会话状态默认是启用的,这意味着ASP.NET为使会话状态功能可用需要做很多工作,即使您根本不使用会话状态也是如此。因此,对于不执行任何会话处理的页面来说,应该覆盖它们的默认值。

禁用会话状态的方法是在Page指令中把EnableSessionState特性设为false

如果一个页面从会话状态读取值(但不写新的值或修改现有的值),那么它是以某种只读的方式使用会话状态。在这些情况下,可以把EnableSessionState设为ReadOnly,这可以让页面访问会话状态,但开销较少(因为省略了写的功能)

如果应用程序中任何地方不使用会话状态,可以在应用程序级别关闭会话状态:在Web.Config文件中把<SessionState>元素的mode特性设为Off