HTML:減少頁面加載時間的方法


1. 重復的HTTP請求數量應盡量減少

  (1)減少調用其他頁面、文件的數量。

  (2)在使用css格式時,常會采用background載入圖形文件,而每個background的圖像都會產生1次HTTP 請求,為了讓頁面生動活潑大量使用background來加載背景圖,可以采用css的1個有用的background-position屬 性來加載背景圖加以改善,將需要頻繁加載的多個圖片合成為1個單獨的圖片,加載時采用:background:url(....) no-repeat x-offset y-offset的形式加載,圖片加載的HTTP請求縮減為1個。

background:url(....) no-repeat x-offset y-offset

 

2. 壓縮Javascript、CSS代碼
  一般js、css文件中存在大量的空格、換行、注釋,這些利於閱讀,如果能夠壓縮掉,將會很有利於網絡傳輸。這方面的工具也有很多,可以在百度里搜索一下 關鍵字“css代碼壓縮”,或者“js代碼壓縮”將會發現有很多網站都提供這樣的功能,當然了你也可以自己寫程序來做這個工作,如果你會的話。就拿我們這 個網站來說吧。剛開始上傳這個網站的時候,我的很多Css代碼都沒有壓縮,后面發現了這個問題,我就上網找了相關的網站的壓縮代碼的功能,最后就把很多 CSS文件都壓縮了。這個壓縮比率還是比較高的,一般都有百分五十左右。這個代碼壓縮對於網頁的加載還是很有用的。

 

3. 在文件頭部放置css樣式的定義

  這項設置對於用戶端是慢速網絡或網頁內容比較龐大的情況比較有利,可以在網頁逐步呈現的同時仍會保持格式信息,不影響網頁美感。

 

4. 在文件末尾放Javascript腳本
  網頁文件的載入是從上到下加載的,很多Javascript腳本執行效率較低,或者在網頁前面都不需要執行的,如果將這些腳本放置到頁面比較靠前的位置, 可能導致網站內容載入速度下降或加載不了,將這些腳本放置在網頁文件末尾,一定要放 置在前面的腳本要改用所謂的“后載入”方式加載,在主體網頁加載完成后再加載,防止其影響到主體網頁的加載速度。

 

5. css、javascript改由外部調用

  如果css、js內容比較龐大,盡量不要寫到同1個頁面中去,改由外部載入比較妥當,因為瀏覽器本身會對css、js文件進行緩存。


6. 盡可能減少DCOM元素
  盡可能減少網頁中各種<>元素數量,例如<table>的冗余很嚴重,而我們完全可以用<div>取代之。


7. 避免使用CSS腳本(CSS Expressions)

  有時為了要css的參數動態改變,可能會采用css expression來實現,但這樣做得不償失,會使用戶端瀏覽器負擔明顯加重,所以不建議這樣做,如果需要改變,可以使用Javascript腳本去實現。


8. 添加文件過期或緩存頭

  對於同一用戶頻繁訪問的圖片、Js腳本文件等可以在Apache或Nginx設置其緩沖時間,例如設置24小時過期時間,這樣用戶在訪問過該頁面之后再次訪問時,同一組圖片或JS不會再重復下載,從而減少了HTTP請求,用戶訪問速度明顯有所提升,同時服務器負載也會下降。下面給出nginx配置中緩存控制的例子:

    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$   
    {   
    expires 30d;#設置30天過期  
    }  
    location ~ .*\.(js|css)?$   
    {  
    expires 1h;#設置1小時過期  
    } 

 

9. 使用CDN(Content Delivery Network)網絡加速

  現在國內做CDN加速業務的公司很多,簡單講,就是將你的圖片、視頻擴散到CDN網絡所能到達之處,讓用戶訪問時能就近下載到這些文件,從而達到網絡提速的目的,這樣做,同時能減輕你自己網站的負載。

 

10. 服務器啟用gzip壓縮功能
  將要傳輸的文件壓縮后傳輸到客戶端再解壓,在網絡傳輸數據量會大幅減小。在服務器上的Apache、Nginx可直接啟用,也可用代碼直接設置傳輸文件頭,增加gzip的設置,也可從 負載均衡設備直接設置。不過需要留意的是,這個設置會略微增加服務器的負擔。服務器性能不是很好的網站,要慎重考慮。

 

11. Ajax采用緩存調用
  Ajax調用都采用緩存調用方式,一般采用附加特征參數方式實現,注意其中的

<script src=”xxx.js?{VERHASH}”,

{VERHASH}就是特征參數,這個參數不變化就使用緩存文件,如果發生變化則重新下載新文件或更新信息。

 

12. Ajax調用盡量采用GET方法調用

  實際使用XMLHttpRequest時,如果使用POST方法實現,會發生2次HTTP請求,而使用GET方法只會發生1次HTTP請求。如果改用GET方法,HTTP請求減少50%!

 

13. 養成良好的開發維護習慣,盡量避免腳本重復調用

 

14. 縮減iframe的使用,如無必要,盡量不要使用

  iframe通常用於不同域名內容的加載,這同時也可能因iframe內容加載速度影響到主網頁加載速度,如果可能,把需要加載的內容抓取到本地直接嵌入。如果實在需要iframe加載,采用后載入方式實現。

 

15. 合理使用Flush

  用戶端發送瀏覽請求后,服務器端一般要花銷200-500ms去處理這些請求,在此期間,用戶端瀏覽器處於等待狀態,如果要減少用戶等待時間,可以在適當的位置使用flush,將已經就緒的內容推送到用戶端,這在php中很容易實現例如:

    <!-- css, js --> 
    </head> 
    <?php flush();?> 
    <body> 
    ... <!-- content --> 

 

16. 避免采用301、302轉向

  當瀏覽器、代理或搜索引擎派出的"爬蟲"對某一頁面或網址請求調用時,該調用頁面或網址所在的網絡服務器將會檢查一個名為.htaccess的文件。該文件包含如何處理特定請求的指令,並在安全性上扮演關鍵角色。用戶可對該文件進行修改,通過這個文件來通知瀏覽器、代理或"爬蟲",被調用頁面屬於臨時移走 (302重定向)還是永久性移走(301重定向)。我們也可以通過網絡托管服務而不是.htaccess'文件來實現301/302永久性重定向。

 

17. 優化圖片文件 

  優化圖片文件,減小其尺寸,特別是縮略圖,一定要按尺寸生成縮略圖然后調用,不要在網頁中用resize方法實現,雖然這樣看到的圖片外形笑了,但是其加載的數據量一點也沒減少。曾經見過有人在網頁中加載的縮略圖,其真實尺寸有10M之巨…

普通圖像、icon也要盡可能壓縮后,可以采用web圖像保存、減少顏色數等等方法實現。

 

18. 當頁面內容龐大到一定程度,可以采用分頁的方式展現,或者taobao的那種翻頁后載入方式。

 

19. 使用多域名負載網頁內的多個文件、圖片

  有資料說明,IE在網頁載入過程中,在同1時刻,對同1域名並行加的HTTP請求數 量最高為2個,如果網頁需要加載的文件數量超過2個(通常遠遠超過..),要加快網頁訪問速度,最好將文件分布到多個域名,例如19樓,其js文件采用獨 立的域名,據說百度的圖片服務器數量在20台以上。

 

20. 配置ETags

    (詳見:優化網站設計(十三):配置ETags

 

 

 

 

 

ref-to:http://developer.51cto.com/art/201105/265125.htm


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM