這個鮮為人知的技巧,就是利用子網域subdomain或別名cname來分散儲存檔案,讓瀏覽器得以同時下載資料,進而提升使用者的網頁瀏覽速度。其加速的基本原理,在於最大化瀏覽器的傳輸限制…

根據HTTP1.1的規範,網頁瀏覽器(如IE和FireFox)僅能從每個主機名稱同時下載兩個檔案,接著循序載入。

比方說www.abc.com/test.html裡,包含6張圖片、2個js、2個css,一共10個檔案,傳輸情況如圖:
1個主機名稱平行傳輸

但如果將該頁的檔案分五個出來到temp.abc.com,那麼速度將有顯著提升(橫軸為載入完成時間):
2個主機名稱平行傳輸


在實作上,大型的多媒體網站,建議可以這樣規劃:
www.domain.com(html, favicon, etc)
a.domain.com(css, js, images, uploads, etc)
b.domain.com(flash, flv, swf, movies, mp3, etc)

看實際需求,像這個網站是這樣規劃:
andy.diimii.com(html, php, 文章圖片, 外掛css和js)
js.diimii.com(佈景js, 其它自訂的js)
css.diimii.com(佈景css, 其它自訂的css)
img.diimii.com(佈景圖片, 其它自訂的圖片)

後記1:瀏覽器其實都有方法來突破這傳輸限制:IEFirefox

後記2:網頁優化加速寫了好幾篇,到這裡應該是final了,主機雖然在國外,但經過這番調效,結果也很令人滿意,網路狀況好一點時,webwait測可以3秒內載完

參考文:Speed Tips: Use Multiple SubDomains | Maximizing Parallel Downloads in the Carpool Lane | Optimize Parallel Downloads to Minimize Object Overhead | IE8 speeds things up

 
  • Hemidemi
  • MyShare
  • Udn
  • funP
  • Furl