歡迎來到合肥浪訊網(wǎng)絡科技有限公司官網(wǎng)
  咨詢服務熱線:400-099-8848

七巧招進步.NET網(wǎng)站功能

發(fā)布時間:2019-11-14 文章來源:本站  瀏覽次數(shù):2890

一、削減往復行程(Reduce Round Trips)


運用下面的辦法能夠削減Web服務器和Browser之間的往復行程:

1、為Browser啟用緩存

假如出現(xiàn)的內(nèi)容是靜態(tài)的或改變周期較長,應啟用Browser緩存,防止宣布冗余的http懇求。

2、緩沖頁面輸出

假如可能,則盡量緩沖頁面輸出,處理完畢后再一次傳送到客戶端,這能夠防止頻頻傳遞小塊內(nèi)容所形成的多次網(wǎng)絡交互。由于這種辦法在頁面處理完畢之前客戶端無法看到頁面內(nèi)容,因此假如一個頁面的尺度較大的話,可考慮運用Response.Flush辦法。該辦法強制輸出迄今為止在緩沖區(qū)中的內(nèi)容,你應當選用合理的算法操控調用Response.Flush辦法的次數(shù)。

3、運用Server.Transfer重定向懇求

運用Server.Transfer辦法重定向懇求優(yōu)于Response.Redirect辦法。原因是Response.Redirect會向Broswer回送一個呼應頭,在呼應頭中指出重定向的URL,之后Brower運用新的URL重新宣布懇求。而Server.Transfer辦法直接是一個簡單的服務端調用,徹底沒有這些開支!

需求注意Server.Transfer有局限性:第一,它會跳過安全檢查;第二,只適用于在同一Web運用內(nèi)的頁面間跳轉。

二、防止堵塞和長時刻的作業(yè)


假如需求運轉堵塞或長時刻運轉的操作,能夠考慮運用異步調用的機制,以便Web服務器能夠繼續(xù)處理其它的懇求。

1、運用異步辦法調用Web服務和長途目標

只要有可能就要防止在懇求的處理過程中對Web服務和長途目標的同步調用,因為它占用的是的ASP.NET 線程池中的作業(yè)線程,這將直接影響Web服務器呼應其它懇求的能力。

2、考慮給不需求返回值的Web辦法或長途目標的辦法增加OneWay特點

這種模式能讓Web Server調用之后就當即返回?筛鶕(jù)實際狀況決定是否運用這種辦法。

3、運用作業(yè)行列

將作業(yè)提交到服務器上的作業(yè)行列中?蛻舳私(jīng)過發(fā)送懇求來輪詢作業(yè)的履行成果。

三、運用緩存


緩存能在很大程度上決定ASP.NET運用的終究功能。Asp.net支持頁面輸出緩存和頁面部分緩存,并供給Cache API,供運用程序緩存自己的數(shù)據(jù)。是否運用緩存可考慮下面的要點:

1、識別創(chuàng)立與訪問代價較大的數(shù)據(jù)

2、評價需求緩存數(shù)據(jù)的易變性

3、評價數(shù)據(jù)的運用頻次

4、 將要緩存數(shù)據(jù)中易變數(shù)據(jù)和不變數(shù)據(jù)別離,只緩存不變數(shù)據(jù)

5、挑選合適的緩存機制(除Asp.net Cache外,Application state和Session state也能夠作為緩存運用)

四、多線程


1、防止在懇求處理過程中創(chuàng)立線程

在履行懇求的過程中創(chuàng)立線程是一種代價較大的操作,會嚴重影響Web Server的功能。假如后續(xù)的操作必須用線程完結,主張經(jīng)過thread pool來創(chuàng)立/辦理線程。

2、不要依賴線程數(shù)據(jù)槽或線程靜態(tài)變量

由于履行懇求的線程是ASP.NET thread pool中的作業(yè)線程,同一個Client的兩次懇求不一定由相同的線程來處理。

3、防止堵塞處理懇求的線程

4、防止異步調用

這和1的狀況類似。異步調用會導致創(chuàng)立新的線程,增加服務器的負擔。所以,假如沒有并發(fā)的作業(yè)要履行,就不要履行異步調用。

五、系統(tǒng)資源


1、考慮實現(xiàn)資源池以提升功能

2、明確地調用Dispose或Close開釋系統(tǒng)資源

3、不要緩存或長時刻占用資源池中的資源

4、盡可能晚的申請,盡可能早的開釋

六、頁面處理


1、盡量減小Page的尺度

包括縮短控件的稱號、CSS的class的稱號、去掉無謂空行和空格、禁用不需求的ViewState

2、啟用頁面輸出的緩沖區(qū)(Buffer)

假如Buffer的機制被封閉,能夠用下面的辦法翻開。

運用程序翻開頁面輸出緩存:

Response.BufferOutput = true;

運用@Page開關翻開頁面輸出緩沖機制:

<%@ Page Buffer = "true" %>

運用Web.config或Machine.config配置文件的節(jié)點:

3、運用Page.IsPostBack優(yōu)化頁面輸出

4、經(jīng)過別離頁面的不同的內(nèi)容,來進步緩存功率和削減出現(xiàn)的時刻

5、優(yōu)化雜亂和代價較大的循環(huán)

6、合理運用客戶端的核算資源,將一些操作轉移到客戶端進行

七、ViewState


ViewState是Asp.net為服務端控件在頁面回傳之間盯梢狀況信息而規(guī)劃的一種機制。

1. 封閉ViewState

假如不需求盯梢頁面狀況,例如頁面不會 回傳(PostBack)、不需求處理服務端控件事情或許每次頁面改寫時都會重新核算控件內(nèi)容,那么就不需求用ViewState來記錄頁面狀況了。能夠對特定的WebControl設置EnableViewState特點,也能夠在頁面一級設置:

<%@ Page EnableViewState="false" %>

2、在恰當?shù)臅r刻點初始化控件特點

ASP.NET的控件在履行結構函數(shù)、初始化的期間設置的特點不會被盯梢改變;而在初始化階段之后對特點的修改都會被盯梢,并終究記錄到IE頁面的__VIEWSTATE之中。所以,挑選合理的初始化控件特點的履行點,能有效的減小頁面尺度。

3、慎重挑選放到ViewState中的內(nèi)容

放到ViewState中的內(nèi)容會被序列化/反序列化,Asp.net為String、Integer、Boolean等根本類型的序列化做了優(yōu)化,假如Array、ArrayList、HashTable存儲的是根本類型功率也較高,但其它類型則需求供給類型轉換器(Type Converter),否則將運用代價昂貴的二進制序列化程序。

總結:光有了這些技能辦法還不夠,還需求將這些辦法根據(jù)你網(wǎng)站的狀況靈活運用,當令調整辦法,集中解決重要問題,這有這樣網(wǎng)站功能才干得到大幅度的優(yōu)化

上一條:網(wǎng)頁規(guī)劃著作賞識:雜志排...

下一條:瞬間的規(guī)劃 I...