如果你是一個做過ASP網(wǎng)站,又做過ASP.NET網(wǎng)站的程序員,你可能會發(fā)現(xiàn),如果按正常的思路開發(fā)ASP.NET網(wǎng)站,ASP.NET網(wǎng)站的速度會比ASP網(wǎng)站慢很多,為什么強大的網(wǎng)站語言會比弱得慢的,原因很簡單,正因為他強大,需要執(zhí)行的程序比較多,而服務(wù)器是一樣的,所以肯定ASP.NET網(wǎng)站會比ASP網(wǎng)站慢,那么如何提高ASP.NET網(wǎng)站的打開速度,發(fā)揮ASP.NET語言的威力呢?方維網(wǎng)絡(luò)總結(jié)了如下方法:
1、禁用ViewState ,VIewState只是當頁面回發(fā)時仍能記住頁面狀態(tài),打破WEB先天的無狀態(tài)性,但肯定也造成性能下降,所以如果不是很必要,請不要使用, 具體禁用方法,可在Web.Config或Page開頭加上 EnableViewState="false";
2、禁用SessionState,你可能會問,如果禁用SessionState,那不是不能使用Session了,怎么進行身份驗證呢,其實,除了Session,還可以使用Cookie,如果怕不安全,可以給Cookie加密,如Window Form認證就是Asp.net內(nèi)置的身份驗證方式。如下:
<authentication mode="Forms">
<forms name="River_Form" loginUrl="~/Login.aspx" defaultUrl="~/Default.aspx" protection="All" timeout="120000" path="/" requireSSL="false" slidingExpiration="true" enableCrossAppRedirects="false" cookieless="UseDeviceProfile"/>
</authentication>
3、網(wǎng)站發(fā)布時,禁用調(diào)試,具體在Web.Config文件里設(shè)置<compilation debug="false">;
4、網(wǎng)站采用編譯發(fā)布 ;
5 、使用ASP.NET頁面緩存、控間緩存等提高性能;
6、使用Cache保存經(jīng)常使用的數(shù)據(jù),也就是數(shù)據(jù)緩存,數(shù)據(jù)緩存有普通緩存、文件依賴緩存、SQL依賴緩存等。
7、生成靜態(tài)頁面,或把經(jīng)常使用的內(nèi)容生成靜態(tài)文件,調(diào)用。
8、如果數(shù)據(jù)量大,不要使用GridView等內(nèi)置的分頁功能,他們是讀取所有的數(shù)據(jù)再分頁的,應(yīng)使用取多少讀多少的分頁方式。一般這種大數(shù)據(jù)量的分頁方式有存儲過程和SQL語句兩種,如果是MSSQL2005數(shù)據(jù)庫可以采用Row_number函數(shù)分頁更方便。
9、采用存儲過程,不但可以節(jié)省網(wǎng)站流量,更是可以提高速度、提高安全性,因為采用存儲過程,可以減少SQL語句傳送消費的時間和寬帶,同時存儲過程采用參數(shù)化方式,減少SQL注入的可能;
10、注意isPostBack ,不要每次頁面回發(fā)重復(fù)執(zhí)行一些操作。
11、需要注意控件的選擇:
DataReadear比DataSet快15%
SqlDataReader比OleDbDataReader快50%
用DataReader的ASP風(fēng)格的表格顯示比DataGrid綁定DataReader快60%
用Ordinal的DataReader訪問字端比用名字訪問快15%
DataGrid中用AutoGenerateColumns=true比用顯式綁定快24%
所以,選擇控件很重要,能滿足需求的情況下用速度最快的控件。
12、頁面代碼采用DIV+CSS代碼,因為傳統(tǒng)的Table布局加載比較慢,代碼也比較多,也會造成速度瓶頸。
13、如非必要,JS文件最好在頁面最后加載。
14、使用CSS Spire,就是把一個頁面用到的背景圖片都集合在一個文件里,減少頁面的請求次數(shù),從而加快網(wǎng)站速度。
如沒特殊注明,文章均為方維網(wǎng)絡(luò)原創(chuàng),轉(zhuǎn)載請注明來自http://m.oulysa.com/news/1645.html