1、在compilation 下,請設定debug=false ,如下:
default Language="c#" debug="false">
2、請使用Server.Transfer代替Response.Redirect。
3、使用Validator控件,請要經常檢查Page.IsValid。
4、請使用foreach循環,而不是為字元串疊代循環。
5、請使用用戶端驗證方式(不要每次都在服務端驗證)。
6、為了避免重複代碼執行,請檢查“Page.IsPostBack”。
7、GIF 和PNG類似,但是PNG通常産生一個較小體積的檔案。(當然,有些浏覽器不支援PNG格式)
8、更新二進制檔案時,請使用AppOffline.htm 。
9、除非需要,否則請關閉跟蹤。
<trace enabled="false" requestLimit="10" pageOutput="false" traceMode=
"SortByTime" localOnly="true"/>
10、編譯頁面,請禁用AutoEventWireup。在Machine.config檔案中請設定AutoEventWireup為false。
11、如果不需要,請關閉Session會話。
<sessionstate timeout="20" cookieless="false" mode="Off" stateconnectionstring
="tcpip=127.0.0.1:42424" sqlconnectionstring="data source=127.0.0.1;Trusted_Connection=no">
12、在你生成最終版本的應用程式之前,請選擇Release模式。預設是Debug。
13、如果不需要請禁用ViewState 。
EnableViewState="false"
14、請避免頻繁的通路資料庫。
15、使用緩存提高你的應用程式的性能。
16、驗證所有的使用者輸入。
17、請最後釋放所有資源。
18、String 和Stringbuilder。
修改字元串時,使用Stringbuilder而不是String ,在每次字元串修改的時候,String都會占據不同的記憶體空間,而Stringbuilder隻使用同一個記憶體空間
19、切勿直接使用對象的值,先從本地變量擷取對象的值,然後再使用。因為直接讀取對象的值比讀取變量更花時間。
20、避免異常:使用if。
21、代碼優化:避免使用:x = x +1,而是使用x+=1比較好。
22、資料通路技術:DataReaders提供快速有效的資料檢索方法。在性能方面,DataReader是速度遠遠超過DataSets 。
23、在做一個笨重的ASP代碼的處理之前,你進行檢查以確定Response.IsClientConnected。
24、避免session變量,因為每個ASP頁面是在不同的線程運作和session調用将會被逐一序列化。這樣會降低應用程式。你可以使用QueryString集合或者表單上面的hidden變量來儲存值。
25、使buffer有效,能提高性能,如:
<% response.buffer=true %>
接着使用:
<% response.flush=true %>
26、使用Repeater控件代替DataGrid,DataList,因為它是高效的,可定制的,和可程式設計的。
27、在資料庫中檢索大量資料,資料清單消耗更多的時間。
分頁将顯示特定的資料,但是要考慮所有資料負載。隻取目前頁需要的資料。
28、避免内嵌JavaScript和CSS。
29、使用單個的css檔案,而不是多個css檔案。
請盡量将您所有的css合并成一個css的類檔案,不管檔案大小,大量的.css檔案會造成大量的請求。.css檔案通常是由浏覽器緩存,這樣一個單一的沉重的.css檔案不會導緻在每個頁面請求時會有漫長的等待。
内嵌.CSS類導緻HTML沉重,是以我覺得:首先考慮一個single.css檔案。
30、減少cookie的大小。
31、壓縮CSS, JavaScript 和Images。
可以使用線上的壓縮,壓縮檔案,将下列網頁和優化的代碼替換為您的檔案内容。
32、适當地使用緩存。
i、頁面輸出緩存:
<%@ OutputCache Duration="3600" VaryByParam="none" %>
ii、頁片段緩存:
在每個使用者控件中寫頁面輸出緩存
iii、資料緩存:
代碼
<script language="C#" runat="server">
Protected void Page_Load (Object src, EventArgs e)
{
DataView dv = (DataView) Cache. Get ("EmployeesDataView");
If (dv == null)
{ // wasn't there
SqlConnection conn = new SqlConnection ("server=localhost;uid=sa;pwd=;database=Test");
SqlDataAdapter da =new SqlDataAdapter ("select * from Employees", conn);
Dataset ds = new DataSet();
da.Fill(ds, "Employees");
dv = ds.Tables["Employees"].DefaultView;
Cache.Insert ("EmployeesDataView", dv);
conn.Close();
}
Else
Response.Write ("
");
lb1.DataSource = dv;
lb1.DataTextField = "Name";
lb1.DataValueField = "Age";
DataBind () ;
script>
34、使用了“using”。
35、不要聲明成員變量為 public 或者proteted,盡量使用private 成員變量和public/protected 屬性。
36、使用strString=string.Empty 代替 strString="" 。
37、請盡可能減輕你的頁面檔案,盡量避免不必要的标簽,例如使用div代替table。
38、在div中寫靜态的消息,必要的時候才顯示出來。這比你設定服務端的label和div的text屬性快。
39、如果可能的話,一次性檢索資料庫中的資料。盡可能不要添加資料庫的通路。是以,整合來自不同表datafields和選擇它們。
40、給WebControl取個簡短的名字。