1、在Page_Load中使用IsPostBack
2、Session和Server Control(服务器端控件)、ViewState 应尽量少用
服务器端控件的开销比较大,所以应尽量少用,但是考虑到程序功能上的要求,是不太可能用的很少的,因此如非必要,应把服务器端控件的ViewState状态设为False
3、不要用Exception控制流程
例如:
Try{
Result=100/num;
} catch(Exception e) {
Result=0;
}
正确的写法是
If (num!=0) result=100/num;
else result=0;
原因是,Exception会占用大量的资源,能不用就不用。
4、禁用VB和JSCRIPT动态数据类型
<%@ Page Language=”vb” Strict=”true”%>
5、使用存储过程数据访问
把经常使用的查询放到存储过程中。
这样也利于封装逻辑。
6、只读数据访问不要使用DataSet
使用SqlDataReader代替
SqlDataReader是read-only,forward-only
7、关闭ASP.NET的Debuy模式 在webconfig中设置
在系统交付使用以后,一般不需要调试,此时可以把Debuy模式关掉。
<compilation defaultLanguage="vb"
debug="true">
8、使用ASP.NET Output Cache缓冲数据
8.1页面缓冲
<%@OutputCatch%>
Duration 缓冲时间,单位秒,过了多长时间才去再次请求 Duration=60
VaryByParam 缓冲项的依据VaryByParam=”cityName” cityName为页面post的参数名
例如:
一个天气查询的页面,选择一个城市,页面显示给城市当前的天气。
页面添加<%@OutputCatch Duration=60 VaryByParam=”cityName” %>
表示每个cityName相同的请求(POST),在60秒后才会重新申请。
这里使用一个远程web service 来获得某个城市的天气,当前web service的相应时间都比较长,如这个web service 需要半秒钟才能获得结果,因此如果不加入缓存的话,上百个人同时访问时,等待的时间是不能接受的,因此要添加缓存。
由于每个城市的天气都要保存,因此这是个数组,varybyparam就是这个数组的下标。也可以是多维数组。
片段缓冲
数据缓冲
Cache对象