知識庫相關文章彙整
如何有效提升網站傳輸速度效能?
網站的視覺設計及內容,是能否吸引訪客的重要因素之一,但也不能因而顧此失彼,造成網站效能的瓶頸。從過去的訪客行為研究分析指出, 等待一個網頁的呈現時間不能超過十秒鐘,但面對目前網頁內容多媒體化的現實挑戰,要達到這樣的目標,在前端頁面的設計上,也就需要多花 些心思。
針對網站效能最佳化歸納出以下方針,並舉例加以說明:
1. 減少需要發出HTTP Request的數量
當您設計的網頁中包含的元件數量越多,Client需要對網站伺服器發出的HTTP Request也會增加,同時也會延長網頁處理的時間。
2. 採用Content Delivery Network服務
由Mirror Image、Akamai、SAVVIS等業者所提供的Content Delivery Network(CDN,內容遞送網路服務),可以供應強大的全球網路基礎架構 ,將網站以最有效的方式傳送給全球使用者,並自動幫網站選擇最佳路徑傳送資料,例如,根據瀏覽者所在地、網路品質及流量狀況,選擇距 離用戶端最近的資料中心傳送資料,確保網頁的瀏覽品質及運作速度。
3. 在網頁中加入過期檔頭
您可以利用這個設定讓網頁具備快取機制,縮短頁面載入時間,尤其是針對內容不常變動的網頁。當然這樣的運用,得視您的網頁性質而定, 若內容變動頻率高的網頁,則不適用此方式。
4. 善用Gzip壓縮機制
以XML/HTTP做為資料交換的開放格式已經十分普遍,傳輸的檔案體積,較過去單純的EDI方式增加許多,用傳送壓縮時間換取傳輸時間,也是一 種提升效率的策略,目前常見的網站伺服器大都支援此項技術。您甚至也可以視情況選擇壓縮HTML、CSS及JavaScript的檔案內容。
5. 將Stylesheet置於網頁頁首
將樣式表(Stylesheet)置於頁首,可以讓CSS設定先行載入,在第一時間套用設定直接呈現網頁。相較於把樣式表放置在頁尾,等所有內容都 下載完畢後才套用,樣式表置於頁首的作法,除了頁面呈現速度較快,載入過程中也較不易造成空白頁的出現。
6. 將Script內容置於頁尾
許多實際狀況中,網頁包含的Script程式,本身並不需要在載入後立即執行,所以作者建議將這些程式碼置於頁尾,至少內容可以在傳輸前段 時間即備妥,讓使用者有較佳的瀏覽體驗。
7. 避免CSS Expression的撰寫方式
CSS Expression的目的,在於讓自訂樣式的語法可以取代部分的Script內容,雖然這麼做很好用,但因網頁顯示過程中花費較多的邏輯判斷時 間,造成網站效能的致命傷。
8. 將JavaScript及CSS內容獨立於網頁內容之外
透過獨立內容的方式,讓HTML本文檔案縮小,而且可以同時被瀏覽器下載,以縮短網頁呈現的時間。
9. 減少DNS查找的次數,縮短取得網頁內容之前的前置時間
雖然網頁可以串連不同網站來源的內容,但是不同網站來源的內容一旦太多,便會延遲頁面載入速度;如果能夠減少網頁內不同網站來源的內 容,就可以減少從用戶端發出的DNS Request數量,縮短DNS的查詢時間。
10. JavaScript內容精簡化
網頁中的JavaScript也是下載的一部分,所以當程式碼內容較多時,亦會直接影響網頁下載的速度。檢視一下程式碼,移除不必要的部分。
11. 避免重導向
網頁重新導向是很方便的功能,但對於使用者而言,他必須等待更多的時間直到最終頁面被載入,所以應該盡可能避免使用重導向轉址功能。
12. 移除重複的Script程式碼
重複的Script程式碼需要花費更多的下載時間,這個問題通常發生在程式碼未能妥善模組化的情況下,檢查一下您的Script程式吧。
13. 善用Etag
透過設定Web Server中的Entity Tag方式,能決定網頁中被快取的內容,以加速網頁呈現,但也得視網頁內容特性而定,Etag主要運用在靜態 頁面上,而動態顯示內容的網頁則不適用此方式。
14. 讓Ajax程式可做到暫存快
Ajax架構透過非同步的傳輸方式,讓使用者具有較佳的使用體驗,卻不見得是效能的保證。除了可以透過利用Gzip壓縮、避免DNS查找次數、簡 化JavaScript內容之外,控制HTTP過期檔頭來快取Ajax網頁,也能發揮明顯效果。
使用3個度量值(Page Weight、Response Time、YSlow Grade)逐一檢視這些網站,找出問題點以及可以改善的地方,配合前述建議的14項準 則,解決效能表現不佳的現象。這些準則都經過實務證明為有效的解法,可以幫網站減少平均二至三成的網路傳輸時間。檢視您的網站架構出 了哪些問題,並對症下藥加以落實,我相信可以讓訪客感受到明顯的效能提升。
(此篇文章為網路轉載,如有冒犯,請來信告知,當即刻移除!)