好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > ASP.NET性能優化之減少請求

ASP.NET性能優化之減少請求

熱門標簽:上海400客服電話怎么申請 滄州電銷外呼系統價格 合肥ai電銷機器人費用 手機外呼系統什么原理 銀行信貸電話機器人 溫州外呼系統招商 400電話個人能不能辦理 天津電銷外呼系統違法嗎 凱立德地鐵站地圖標注
這種機制存在的性能損耗,就是服務器的ASP.NET仍舊要接收請求,處理請求。此篇所講的機制是讓瀏覽器自己去決定是否去讀緩存,這樣就徹底消滅了針對服務器的請求。

1:減少靜態頁面請求

要讓靜態頁面支持這個需求,我們需要用到http頭中的Cache-Control: max-age。值得注意的是Cache-Control是在HTTP/1.1協議下的標識,它是HTTP/1.0協議中的Expires的升級。為了讓靜態頁支持Cache-Control,一種方案是在IIS中進行設置,如下,我在需要靜態緩存的頁面或者文件夾上右鍵->屬性:

image

我在這里將過期時間設置為1分鐘,然后,我們通過HttpWatch觀察IE請求該頁面(第一次請求),得到的HTTP頭如下:

image

可以看到其得到的http頭中已經有了Cache-Control: max-age=60這一項。

現在,我需要在1分鐘內反復請求該靜態頁,請求的行為我們分別通過下面幾種方式來實現,

F5 代表瀏覽器的一次刷新,它對Last-Modified有效,但是對Cache-Control無效
點擊“轉到”或者光標移入地址欄然后回車 對Cache-Control有效
CTRL+F5 強制刷新,返回所有正文

我們通過HttpWatch得到的結果如下:

image

需要注意我在圖中用紅字和紅框的標識:

首次請求 返回狀態碼200,顯然得到全部正文,為545字節。
F5 刷新,對Last-Modified有效,它是讓服務器判斷是否需要讀取緩存,所以,依然存在請求和返回數據,我們可以看到,分別是352和239。狀態碼是304。
點擊“轉到”或者光標移入地址欄然后回車 對Cache-Control有效,是瀏覽器自己決定是否讀取緩存,由于是在1分鐘內,所以,瀏覽器沒有向WEB服務器發送請求,我們可以看到send和receive的數據全部是0。無交互,故無狀態碼。
ctrl+f5 相當于是強制刷新,所以狀態碼200OK,返回全部正文數據,我們可以看到和第一次請求是一樣的,為545字節。

(題外話,上面的圖中有一個針對favicon.ico的404,我們應該始終為網站提供favicon.ico,它是你可以設置的網站LOGO,不然有些瀏覽器會反復去請求該LOGO,這也會帶來性能損耗)。

經過上面的處理后,可以遇見我們相比上一篇更進一步減少了HTTP請求,提升了效率,因為總有一些用戶會通過“轉到”或者光標移入地址欄然后回車去請求數據。我們可以根據實際需求去設定特定頁面的緩存時間。

1.1 通過web.config設置靜態文件緩存

在上面的示例中,我們通過IIS設置了靜態文件的緩存,也可以在web.config中進行設置,如下(在configuration>下):

復制代碼 代碼如下:

system.webServer>
validation validateIntegratedModeConfiguration="false"/>
modules runAllManagedModulesForAllRequests="true"/>
staticContent>
clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="0.00:00:60"/>
/staticContent>
/system.webServer>

1.2 關閉靜態文件緩存
也可以對單獨的文件夾或者文件關閉緩存,如下設置(在configuration>下):
復制代碼 代碼如下:

location path="test2.htm">
system.webServer>
staticContent>
clientCache cacheControlMode="DisableCache"/>
/staticContent>
/system.webServer>
/location>

2:減少動態頁面請求
有了對以上靜態頁面或者說資源的分析之后,我們知道,可以對動態頁面請求采用相同的策略,這需要我們自己寫代碼實現:
復制代碼 代碼如下:

protected void Page_Load(object sender, EventArgs e)
{
//處理點擊“轉到”或者光標移入地址欄然后回車,也就是本文所闡述的
this.Response.AddHeader("Cache-Control", "max-age=60");
//真是用來處理F5刷新的,也就是對Last-Modified有效
this.Response.AddHeader("Last-Modified", DateTime.Now.ToString("U", DateTimeFormatInfo.InvariantInfo));
DateTime IfModifiedSince;
if (DateTime.TryParse(this.Request.Headers.Get("If-Modified-Since"), out IfModifiedSince))
{
if ((DateTime.Now - IfModifiedSince.AddHours(8)).Seconds 60)
{
Response.Status = "304 Not Modified";
Response.StatusCode = 304;
return;
}
}
}

結果如下:

image

該結果與我們使用靜態頁面完全一致。

2.1使用配置文件配置

也可以在配置文件中批量對動態文件進行配置,如下:

復制代碼 代碼如下:

system.web>
……
caching>
outputCacheSettings>
outputCacheProfiles>
add name="cache1" duration="60" location="Client" varyByParam="none"/>
/outputCacheProfiles>
/outputCacheSettings>
/caching>
/system.web>

然后在頁面前臺引用:
復制代碼 代碼如下:

%@ OutputCache CacheProfile="cache1" %>

本文代碼比較簡單,關鍵是要體會其中所蘊含的思想,即:把瀏覽器當成你的網站的緩存的極其重要的一部分。
備注
在本篇中,我使用了AddHeader來進行http頭的添加,上篇中有朋友提出來使用Response.Cache.SetMaxAge方法,需要提醒的是,使用該方法,將導致丟失304狀態。深層次原因不再細究。

您可能感興趣的文章:
  • ASP.NET性能優化之局部緩存分析
  • ASP.NET 性能優化之反向代理緩存使用介紹
  • ASP.NET性能優化之讓瀏覽器緩存動態網頁的方法
  • ASP.NET性能優化之構建自定義文件緩存
  • ASP.NET性能優化小結(ASP.NETC#)
  • asp.net 程序性能優化的七個方面 (c#(或vb.net)程序改進)
  • ASP.NET比較常用的26個性能優化技巧
  • asp.net小談網站性能優化
  • ASP.NET技巧:同時對多個文件進行大量寫操作對性能優化
  • asp.net性能優化之使用Redis緩存(入門)

標簽:金華 洛陽 七臺河 白城 赤峰 酒泉 怒江 溫州

巨人網絡通訊聲明:本文標題《ASP.NET性能優化之減少請求》,本文關鍵詞  ASP.NET,性能,優化,之,減少,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《ASP.NET性能優化之減少請求》相關的同類信息!
  • 本頁收集關于ASP.NET性能優化之減少請求的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 十大污污app| 波多野爆吞多人精子| bl短篇集合高H| 九九精品在线观看| 秀女被各种玉势调教H| 熟女?人妻のAV中文字慕| 41sao.can在线观看国产| r逼| 麦克白夫人| 黄色片成人| 航拍中国上海| 色一情一乱一伦麻豆| 鸣人雏田18同人禁视频| 久久A片啪啪性刺激流水| 久久精品男人之天堂观看环境| awm祁醉于炀肉车| 牝教师~淫辱の教室4樱花动漫| 女学生被爆?羞羞视频网站| 野外艳谈三级在线观看 | 啊灬啊灬啊灬快灬深用力点.| 初裸写真片HD九七影院在线观看| 毅喻實業的產品有什麼| 91国產乱老熟视頻老熟女| 91黑料精品国产| 男同gays| 与卿书演员表| 男人猛躁女人秘?免费看网站软件| 免费看无码一级A片放24小时| 佸伦短篇小说| 狠狠干狠狠干| 日本人妻av一区二区三区电影| av香港经典三级级在线| 国产情侣久久| 成年黄大片| 92久久AV嫩草影院性色| 缅甸性猛交ⅩXXX乱大交03| 调教羞耻超短裙任务| 国产中文在线| 挺进黄蓉的滋润花苞| 亚洲一区二区三区女厕偷拍| 都昌县|