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”%>
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
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對象