asp.net網站性能優化2則

摘要:Web服務器的性能優化有不少資料介紹了,多臺主機負載均衡,查詢結果的多級緩javascript

存,數據庫索引優化等都是常見的優化手段。隨着後端優化空間愈來愈小,如今愈來愈多
的網站更注重前端性能的優化,就是瀏覽器,http層面的優化,這裏寫兩點最簡單最有效
的asp.net網站優化技巧。
 
== 瞭解常見的網站性能優化技巧 ==
  首先咱們要學一些優化網站性能和體驗的理論和基礎知識,雅虎已經幫咱們總結好了
,詳見參考連接中的幾篇文章,有好心人已經給翻譯成中文了。這裏面提到的一些技巧可
操做性都很強,建議每個網站開發人員都仔細學習並進行實踐,能夠說不了解這裏面說
的優化技巧,提高網站前端性能就無從談起。
 
== 診斷網站性能 ==
  要想優化網站的前端性能,首先要查看最影響前端性能的瓶頸是哪些?最經常使用的工具
就是Google的Page Sped和Yahoo的YSlow,這兩個工具都是在Firefox下使用的,而且是基
於FireBug的,FireBug是前端開發人員必備的一個插件了。
  這兩個工具能夠幫你診斷你的頁面的性能瓶頸在哪裏,好比打開你的站點首頁共消耗
了多少網絡流量,進行了多少次HTTP請求,每一個頁面組件是否能夠進行緩存,頁面加載的
各個執行過程各佔用了多少時間,加載中是否有阻塞狀況,頁面組件並行加載狀況如何,
圖片是否還能夠進行無損壓縮,腳本和樣式放置的位置是否合理,是否刪除了沒必要要的空
白,是否進行了gzip的壓縮等等。知道了這些信息,你就能夠有針對性的進行網站性能優
化,先把最影響性能的地方優化掉。
  這兩個工具使用起來也很簡單,詳見參考連接中的兩篇文章。
 
== 進行優化實踐 ==
  根據我對網站優化的學習和實踐,總結出來一些經驗:通常網站性能消耗都集中在網
絡下載上,包括頁面自己的HTML以及圖片,腳本,樣式等組件的下載,尤爲是在網速比較
慢的時候,下載這些東西要花費整個網頁呈現的大部分時間,這些東西下載完成後,本地
的渲染和展示通常會很快,除非有很複雜的效果或腳本,而服務端執行的快慢要看具體服
務器的邏輯,優化起來複雜度較高,每每站點自己還要訪問後端的其它服務器,數據庫等
  解決這個首先有兩點能夠入手,一是對頁面組件進行壓縮,web用的圖片通常自己就
是壓縮格式,因此壓縮空間不太大,還會額外佔用服務器CPU,但腳本,樣式,HTML這些
文本內容用GZIP壓縮的壓縮比就很是大了,並且如今大多數瀏覽器都支持GZIP壓縮。
  另外一方面是對腳本,樣式,圖片加Http Expire頭,加上這個過時頭,網站只須要第
一次打開時須要下載這些網頁組件,以後再打開甚至連HTTP請求都不用發起,直接在本地
加載了,固然腳本和樣式服務端有可能之後還會變化,咱們須要利用URL重寫進行腳本和
樣式引用的自動更名,以便在腳本和頁面更新後刷新利覽器緩存。
  可喜的是要作到這兩點,在IIS7裏很是簡單,首先說壓縮,在win7裏利用"打開或關
閉windows功能"裏打開IIS性能工具裏的「動態內容壓縮」和「靜態內容壓縮」,如圖1。
  而後在IIS管理器裏,選中要壓縮的網站,雙擊壓縮按鈕把動態壓縮和靜態壓縮的勾
加上就好了,默認會對mimetype爲text/*和application/x-javascript進行壓縮,通常這
就夠用了,但IIS7默認對.js文件使用
application/x-javascript的mimetype,而默認對application/x-javascript進行的是動
態壓縮,動態壓縮和靜態壓縮的區別就是不會被IIS的緩存機制緩存,每次訪問都會去讀
取文件或路由請求到後面的模塊,因此咱們要把.js的mimetype改爲
application/javascript,如圖2
  而後對application/x-javascript進行動態壓縮,對application/javascript進行靜態壓縮,須要配置C:\Windows\System32\inetsrv\config\applicationHost.config,以下圖3
  對頁面組件進行了壓縮有已經減小了很多網絡流量,提高了很大的性能,可是一些腳
本和樣式通常狀況下不多改變,每次訪問網頁都要從新下載仍是會消耗很多網絡流量,這
就須要配置靜態文件的過時時間了。
  IIS7的管理器裏有個HTTP響應標頭的功能,通常網站的腳本、樣式和圖片分別放在
scripts,styles,images目錄下,咱們直接爲這幾個目錄下的文件設置過時時間爲100天就
能夠了,在IIS7的管理器裏直接能夠進行操做,具體見參考連接,就不重複了,設置成功
後會在這3個子目錄裏分別生成一個web.config文件,並設置
cacheControlMode=UseMaxAge,cacheControlMaxAge=100.00:00:00
    這樣設置之後優化效果就很好了,第一次打開網頁後,再次打開網頁要比之前快好多
倍,可是有一個問題就是若是你的樣式或腳本修改後,若是客戶端不刷新頁面,就不會生
效了。解決這個問題利用URL Rewrite把樣式,腳本的引用路徑加一個時間戳,若是腳本
改動了後,時間戳就改動了,引用的文件名就變了,瀏覽器就會下載新的樣式了,而新的
樣式實際上通過url rewrite後仍是之前的名字,好比/scripts/base.201001111502.js實
際上就是/scripts/base.js,具體操做見參考文章。
  但文章裏說的是iis6.0用的是URLRewrite組件,在IIS7裏有一個免費的rewrite模塊,
在微軟網站下載下來安裝上就好了,它的配置規則和URLRewrite不太同樣,最重要的區別
就是對正則分組匹配不是用$1,$2引用,而是用{R:1}這種格式引用,還有就是目標url的
配置不須要正則轉義符,好比"."就是".",不須要是"\.",若是不注意這個就等着404吧,
具體IIS7.5下的重寫模塊使用和注意事項可看後面的參考連接,我這裏的配置以下
{{{
<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>
 
}}}
== 小節 ==
  進行了這兩處優化後,網站性能已經提高了很多了,接下來再按照雅虎提供的優化原
則和page speed的提示看看還有哪些是能夠比較簡單而有效的進行優化的。
 
== 參考連接==
下載IIS7 URL Rewrite 模塊
http://www.iis.net/download/URLRewrite
自動給CSS,JavaScript文件添加版本號
http://www.cnblogs.com/dushouke/archive/2010/01/16/automatically-version-your-css-and-javascript-files.html
【轉】Windows7下IIS7.5的僞靜態URL Rewrite安裝配置和案例綜合
http://www.cnblogs.com/dongqi/archive/2010/08/10/1796775.html
Google網站性能優化工具Page Speed試用報告
http://dudo.org/archives/2009060611295.html
你的網站爲何會慢?——用YSlow爲你的網站提速
http://dudo.org/archives/2008052016222.html
Yahoo!網站性能最佳體驗的34條黃金守則——內容
http://dudo.org/archives/2008051211216.html
Yahoo!網站性能最佳體驗的34條黃金守則——服務器
http://dudo.org/archives/2008051322217.html
Yahoo!網站性能最佳體驗的34條黃金守則——JavaScript和CSS
http://dudo.org/archives/2008051417218.html
Yahoo!網站性能最佳體驗的34條黃金守則——圖片、Coockie與移動應用
IIS7配置Gzip壓縮
http://www.imkevinyang.com/2009/06/iis7%E9%85%8D%E7%BD%AEgzip%E5%8E%8B%E7%BC%A9.html
IIS爲不一樣的文件設置不一樣的過時頭
http://www.cnblogs.com/dushouke/archive/2010/07/24/iis-only-add-expires-headers-to-images.html
相關文章
相關標籤/搜索