性能提高的技巧
1.避免不必要的執行操作
page_load 和 ispostback
void page_load(object sender, eventargs e) {
// ...set up a connection and command here...
if (!page.ispostback) {
string query = "select * from authors where firstname like '%justin%'";
mycommand.fill(ds, "authors");
mydatagrid.databind();
}
}
void button_click(object sender, eventargs e) {
string query = "select * from authors where firstname like '%brad%'";
mycommand.fill(ds, "authors");
mydatagrid.databind();
關閉不必要的session狀态
<%@ page enablesessionstate="false" %>
注意使用server control
不必要時可以不使用server control
不必要時可以關閉viewstate
<asp:datagrid enableviewstate="false“ runat="server"/>
<%@ page enableviewstate="false" %>
不要用exception控制程式流程
try {
result = 100 / num;
}
catch (exception e) {
result = 0;
if (num != 0)
else
result = 0;
禁用vb和jscript動态資料類型
<%@ page language="vb" strict="true" %>
使用存儲過程資料通路
隻讀資料通路不要使用dataset
使用sqldatareader代替dataset
sqldatareader是read-only, forward-only
關閉asp.net的debug模式
使用asp.net output cache緩沖資料
頁面緩沖
< % @ outputcache%>
duration
varybyparam
片斷緩沖
varybycontrol
資料緩沖
過期依賴條件
cache.insert("mydata", source, new cachedependency(server.mappath("authors.xml")));
cache.insert("mydata", source, null,
datetime.now.addhours(1), timespan.zero);
cache.insert("mydata", source, null, datetime.maxvalue,
timespan.fromminutes(20));
存儲過程,那就不用說了
***************************************
頁面最好靜态的
全局緩存要做好
别太多的包含檔案
能用js實作的效果都用js實作
能在用戶端實作的就用
分頁使用好的存儲過程,其他的也盡量使用存儲過程
少用些耗費資源的控件,減少回發
記得銷毀資料庫連接配接
不要把所有内容都放在大表格中 而是盡量以橫向分段,一段為一個表格
能用html的就不要用aspx了
能用javascript就不要用cs了
datagrid能不用就不用
session、viewstate、server control能不用就關
存儲過程、緩存會用就用,不會就學
隻讀資料使用datareader,很多的資料庫操作使用存儲過程,
使用<% @outputcache duration=60 varybyparam="*"%>進行緩存
關閉debug模式
正确使用索引
if (!page.ispostback)進行綁定不需要回傳的代碼
圖檔不要太精确
首頁資料查詢比較多但更新不常用的可以使用aspx動态生成html頁面
控件不需要經常程式設計的 比如輸入控件等都使用html控件
開通鏡像服務
大型門戶網站asp.net實作的注意事項:
1. 不要用伺服器端控件
2. 全面禁用asp.net的一些頁面級新特性
3. web.config裡的debug要為false,并且dll檔案編譯是要生成為release版本的
4. 盡量不要用dataset。除非用到嵌套循環
5. 運作在win2003企業版上。
6. 用sqlclient或oracleclient通路資料庫
這些是asp.net開發大型網站必須要重視的幾點,其它一些就是靜态頁面啊和硬體上的一些問題,這些跟其它大型網站諸如此類
補充:
1、轉向用server.transfer,不用response.direct
2、ado對象在一次使用過程中不要重複打開建立,盡量使用一個connection、一個command、一個datareader,并且記得不再調用資料庫資料時馬上關閉、釋放ado對象
3、資料集采用要多少給多少,杜絕不分字段不分頁