亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Asp.net 網(wǎng)站性能優(yōu)化二則分享

 更新時間:2011年08月30日 17:02:44   作者:  
Web服務(wù)器的性能優(yōu)化有很多資料介紹了,多臺主機(jī)負(fù)載均衡,查詢結(jié)果的多級緩存,數(shù)據(jù)庫索引優(yōu)化等都是常見的優(yōu)化手段。
隨著后端優(yōu)化空間越來越小,現(xiàn)在越來越多的網(wǎng)站更注重前端性能的優(yōu)化,就是瀏覽器,http層面的優(yōu)化,這里寫兩點最簡單最有效的 asp.net網(wǎng)站優(yōu)化技巧。

了解常見的網(wǎng)站性能優(yōu)化技巧

首先我們要學(xué)一些優(yōu)化網(wǎng)站性能和體驗的理論和基礎(chǔ)知識,雅虎已經(jīng)幫我們總結(jié)好了,詳見參考鏈接中的幾篇文章,有好心人已經(jīng)給翻譯成中文了。這里面提到的一些技巧可操作性都很強(qiáng),建議每一個網(wǎng)站開發(fā)人員都仔細(xì)學(xué)習(xí)并進(jìn)行實踐,可以說不了解這里面說的優(yōu)化技巧,提升網(wǎng)站前端性能就無從談起。

診斷網(wǎng)站性能

要想優(yōu)化網(wǎng)站的前端性能,首先要查看最影響前端性能的瓶頸是哪些?最常用的工具就是Google的Page Sped和Yahoo的YSlow,這兩個工具都是在Firefox下使用的,并且是基于FireBug的,F(xiàn)ireBug是前端開發(fā)人員必備的一個插件了。這兩個工具可以幫你診斷你的頁面的性能瓶頸在哪里,比如打開你的站點首頁共消耗了多少網(wǎng)絡(luò)流量,進(jìn)行了多少次HTTP請求,每個頁面組件是否可以進(jìn)行緩存,頁面加載的各個執(zhí)行過程各占用了多少時間,加載中是否有阻塞情況,頁面組件并行加載情況如何,圖片是否還可以進(jìn)行無損壓縮,腳本和樣式放置的位置是否合理,是否刪除了不必要的空白,是否進(jìn)行了gzip的壓縮等等。知道了這些信息,你就可以有針對性的進(jìn)行網(wǎng)站性能優(yōu)化,先把最影響性能的地方優(yōu)化掉。

這兩個工具使用起來也很簡單,詳見參考鏈接中的兩篇文章。

進(jìn)行優(yōu)化實踐

根據(jù)我對網(wǎng)站優(yōu)化的學(xué)習(xí)和實踐,總結(jié)出來一些經(jīng)驗:一般網(wǎng)站性能消耗都集中在網(wǎng)絡(luò)下載上,包括頁面本身的HTML以及圖片,腳本,樣式等組件的下載,尤其是在網(wǎng)速比較慢的時候,下載這些東西要花費(fèi)整個網(wǎng)頁呈現(xiàn)的大部分時間,這些東西下載完成后,本地的渲染和展現(xiàn)一般會很快,除非有很復(fù)雜的效果或腳本,而服務(wù)端執(zhí)行的快慢要看具體服務(wù)器的邏輯,優(yōu)化起來復(fù)雜度較高,往往站點本身還要訪問后端的其它服務(wù)器,數(shù)據(jù)庫等。

解決這個首先有兩點可以入手,一是對頁面組件進(jìn)行壓縮,web用的圖片一般本身就是壓縮格式,所以壓縮空間不太大,還會額外占用服務(wù)器CPU,但腳本,樣式,HTML這些文本內(nèi)容用GZIP壓縮的壓縮比就非常大了,而且現(xiàn)在大多數(shù)瀏覽器都支持GZIP壓縮。另一方面是對腳本,樣式,圖片加Http Expire頭,加上這個過期頭,網(wǎng)站只需要第一次打開時需要下載這些網(wǎng)頁組件,之后再打開甚至連HTTP請求都不用發(fā)起,直接在本地加載了,當(dāng)然腳本和樣式服務(wù)端有可能以后還會變化,我們需要利用URL重寫進(jìn)行腳本和樣式引用的自動改名,以便在腳本和頁面更新后刷新利覽器緩存。

可喜的是要做到這兩點,在IIS7里非常簡單,首先說壓縮,在win7里利用“打開或關(guān)閉windows功能”里打開IIS性能工具里的“動態(tài)內(nèi)容壓縮”和“靜態(tài)內(nèi)容壓縮”,如圖1。

然后在IIS管理器里,選中要壓縮的網(wǎng)站,雙擊壓縮按鈕把動態(tài)壓縮和靜態(tài)壓縮的勾加上就行了,默認(rèn)會對mimetype為text/*和application/x-javascript進(jìn)行壓縮,一般這就夠用了,但I(xiàn)IS7默認(rèn)對.js文件使用application/x-javascript的mimetype,而默認(rèn)對application/x-javascript進(jìn)行的是動態(tài)壓縮,動態(tài)壓縮和靜態(tài)壓縮的區(qū)別就是不會被IIS的緩存機(jī)制緩存,每次訪問都會去讀取文件或路由請求到后面的模塊,所以我們要把.js的mimetype改成application/javascript,如圖2

然后對application/x-javascript進(jìn)行動態(tài)壓縮,對application/javascript進(jìn)行靜態(tài)壓縮,需要配置C:\Windows\System32\inetsrv\config\applicationHost.config,如下圖3

 

對頁面組件進(jìn)行了壓縮有已經(jīng)減少了不少網(wǎng)絡(luò)流量,提升了很大的性能,但是一些腳本和樣式一般情況下很少改變,每次訪問網(wǎng)頁都要重新下載還是會消耗不少網(wǎng)絡(luò)流量,這就需要配置靜態(tài)文件的過期時間了。

IIS7的管理器里有個HTTP響應(yīng)標(biāo)頭的功能,一般網(wǎng)站的腳本、樣式和圖片分別放在scripts,styles,images目錄下,我們直接為這幾個目錄下的文件設(shè)置過期時間為100天就可以了,在IIS7的管理器里直接可以進(jìn)行操作,具體見參考鏈接,就不重復(fù)了,設(shè)置成功后會在這3個子目錄里分別生成一個web.config文件,并設(shè)置cacheControlMode=UseMaxAge,cacheControlMaxAge=100.00:00:00這樣設(shè)置以后優(yōu)化效果就很好了,第一次打開網(wǎng)頁后,再次打開網(wǎng)頁要比以前快好多倍,但是有一個問題就是如果你的樣式或腳本修改后,如果客戶端不刷新頁面,就不會生效了。解決這個問題利用URL Rewrite把樣式,腳本的引用路徑加一個時間戳,如果腳本改動了后,時間戳就改動了,引用的文件名就變了,瀏覽器就會下載新的樣式了,而新的樣式實際上經(jīng)過url rewrite后還是以前的名字,比如/scripts/base.201001111502.js實際上就是/scripts/base.js,具體操作見參考文章。

但文章里說的是iis6.0用的是URLRewrite組件,在IIS7里有一個免費(fèi)的rewrite模塊,在微軟網(wǎng)站下載下來安裝上就行了,它的配置規(guī)則和URLRewrite不太一樣,最重要的區(qū)別就是對正則分組匹配不是用$1,$2引用,而是用{R:1}這種格式引用,還有就是目標(biāo)url的配置不需要正則轉(zhuǎn)義符,比如“?!本褪恰啊!?,不需要是“\?!?,如果不注意這個就等著404吧,具體IIS7.5下的重寫模塊使用和注意事項可看后面的參考鏈接,我這里的配置如下

復(fù)制代碼 代碼如下:

{{{
<rewrite>
<rules>
<rule name="static_file_auto_version">
<match url="^(scripts|styles|images)/(.*?)\.[0-9]+\.(css|js|gif|png|jpg)" />
<action type="Rewrite" url="{R:1}/{R:2}.{R:3}" />
</rule>
</rules>
</rewrite>
}}}

小節(jié)

進(jìn)行了這兩處優(yōu)化后,網(wǎng)站性能已經(jīng)提升了不少了,接下來再按照雅虎提供的優(yōu)化原則和page speed的提示看看還有哪些是可以比較簡單而有效的進(jìn)行優(yōu)化的。(來源:蛙蛙池塘)

相關(guān)文章

  • Asp.Net 5分鐘實現(xiàn)網(wǎng)頁實時監(jiān)控

    Asp.Net 5分鐘實現(xiàn)網(wǎng)頁實時監(jiān)控

    在項目開發(fā)中經(jīng)常會用到監(jiān)控功能,下面通過本篇文章給大家介紹Asp.Net 5分鐘實現(xiàn)網(wǎng)頁實時監(jiān)控,需要的朋友可以參考下
    2017-12-12
  • ASP.NET Core Zero使用Power Tool工具

    ASP.NET Core Zero使用Power Tool工具

    這篇文章介紹了ASP.NET Core Zero使用Power Tool工具的方法,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-02-02
  • asp.net core 獲取 MacAddress 地址方法示例

    asp.net core 獲取 MacAddress 地址方法示例

    這篇文章主要介紹了asp.net core獲取MacAddress地址方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-02-02
  • .NET Core 2.0 Preview2 發(fā)布匯總

    .NET Core 2.0 Preview2 發(fā)布匯總

    這篇文章主要為大家詳細(xì)介紹了.NET Core 2.0 Preview2 發(fā)布匯總的相關(guān)內(nèi)容,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • ASP.NET Core對不同類型的用戶進(jìn)行區(qū)別限流詳解

    ASP.NET Core對不同類型的用戶進(jìn)行區(qū)別限流詳解

    這篇文章主要介紹了ASP.NET Core對不同類型的用戶進(jìn)行區(qū)別限流的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • asp.net URL編碼與解碼

    asp.net URL編碼與解碼

    通常如果一樣?xùn)|西需要編碼,說明這樣?xùn)|西并不適合傳輸。原因多種多樣,如Size過大,包含隱私數(shù)據(jù),對于Url來說,之所以要進(jìn)行編碼,是因為Url中有些字符會引起歧義
    2011-12-12
  • 注冊或者點擊按鈕時,怎么防止用戶重復(fù)提交數(shù)據(jù)(實例講解)

    注冊或者點擊按鈕時,怎么防止用戶重復(fù)提交數(shù)據(jù)(實例講解)

    這篇文章主要是對注冊或者點擊按鈕時,怎么防止用戶重復(fù)提交數(shù)據(jù)進(jìn)行了介紹,需要的朋友可以過來參考下,希望對大家有所幫助
    2013-12-12
  • .net?core中高效的動態(tài)內(nèi)存管理方案

    .net?core中高效的動態(tài)內(nèi)存管理方案

    這篇文章介紹了.net?core中高效的動態(tài)內(nèi)存管理方案,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-07-07
  • 利用MS AJAX注冊Javascript命名空間并創(chuàng)建類

    利用MS AJAX注冊Javascript命名空間并創(chuàng)建類

    利用MS AJAX注冊Javascript命名空間并創(chuàng)建類...
    2007-10-10
  • 使用源鏈接對ASP.NET Core源代碼進(jìn)行調(diào)試

    使用源鏈接對ASP.NET Core源代碼進(jìn)行調(diào)試

    這篇文章介紹了使用源鏈接對ASP.NET Core源代碼進(jìn)行調(diào)試的方法,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-02-02

最新評論