15招快速減少頁面載入時間

來源:互聯網
上載者:User

也許是因為越來越多的人用上了大號的水管,前端程式員差不多將網頁的最佳化工作都拋在腦後了。越來越多的 widget 和 javascript 代碼被加在網頁上,以致網頁越來越慢。瞬間的載入速度讓你感覺就像呼吸到一口新鮮空氣。程式員有時忽略了一些非常簡單的規則,導致降低了使用者體驗。頁面的載入速度決定使用者的情緒,尤其是電子商務網站。以下是一些它之所以這麼重要的原因。

快速的載入可以提升使用者體驗。使用者關注頁面的載入速度,或自覺或不自覺地。就好比一個球隊中的球員,只有當他表現差的時候才會引起關注。
載入迅速的網頁讓人感覺更清爽。網頁的載入速度有可能影響你的搜尋引擎排名。Google 已經明確表示他們很關注網頁的載入速度,並且會影響到 Adword 網頁的索引,所以也不會在排名中佔有太大的比重。
慢速則賠錢——載入速度過慢會趕走你的訪客。據估計每年電子商務網站都會因載入速度過慢,而損失11億到13億的收入。

載入龜速就算是最優秀的網頁設計也會被埋沒。這裡有一些很好的方法和工具可以協助你建立一個快速流暢的網站。

 

1. 一個基本的網頁分析器

可選的工具有很多,但我總是用“Web Page Analyzer”來檢查一般性的錯誤,並且根據載入速度來判斷網站的健康程度。這個分析工具可以顯示海量的資料,比如有多少指令碼代碼、檔案有多大等等可能影響到載入速度的因素。(這個工具很小氣,100K的圖片就警告了 - 譯者注)

2. Pingdom

Pingdom 這個網站可以幫你檢查損壞的圖片連結或連結,測試你的圖片和指令碼的載入速度。壞鏈和圖片是導致載入緩慢的主要原因。比如,我用這個分析了我的部落格 LifeDev 後,我找到了一個錯誤指令碼和2張失效的圖片。搞定了這些錯誤後,網站的載入速度快了一倍。

它還有另外一個功能,就是可以看到載入的每一個階段所用的時間。Pingdom 用不同的顏色表示載入過程的每一個階段,比如開始串連,載入的第一個位元組到最後一個位元組等,這樣你就可以知道時間究竟是浪費在了哪。

3. 把檔案放在本地

雖然這麼做會消耗一些頻寬,但以本地檔案替代照片管理服務(比如 flickr.com),可以省下瀏覽器從站外下載圖片的時間。本地檔案總是比外部檔案更快。

4. 設定圖片的長度和寬度

這是一個正確設定圖片長度和寬度的樣本:

<img src="images/mine.gif" border="0" alt="my image" width=”125″ height=”250″ />

圖片的長度和寬度設定與否簡直是天壤之別。若設定了長寬,瀏覽器會在圖片未完成下載前先載入其它內容,並且會在網頁預留出圖片的空間。否則瀏覽器會等待圖片下載完成,再去載入其餘的內容。

5. 慎用 widget

即使 widget(視窗小外掛程式,小韌體,小器件等等,什麼譯法都有,這裡保留英文 - 譯者注)非常酷而且有一些非同尋常的功能,但考慮到犧牲掉的載入速度,忘掉它也應該不難。要是你的網站因 widget 而掛掉的話,趕緊刪掉吧。

6. 使用靜態緩衝

關於緩衝可以有很多種解決方案。從本質上講,緩衝就是:把用動態語言(比如 PHP)寫出的頁面轉換成最終的靜態網頁。伺服器難以置信地擅長處理靜態頁面。把動態網頁面轉換成靜態頁面可以減輕伺服器負荷,並節省載入的時間。這裡有一些流行語言的緩衝教程可供參考:
        *  PHP
        *  Rails
        *  Perl
        *  Java
        *  ASP

7. 加速器

動態語言通常都有指令碼協助加速運行。如果你使用的是 PHP,這些指令碼也許有協助:APC, Zend cache, Xcache

8. Firebug

Firebug 是Firefox瀏覽器的一個擴充外掛程式,內嵌在瀏覽器內。Firebug 的一大功能就是分析網頁的每一方面,特別是載入速度。

9. 最佳化CSS

減小JS和CSS代碼可以大幅改善網頁的載入速度。可以使用一些線上服務比如“CSS clean”來最佳化你的CSS代碼,刪去一些不必要的東西比如:
        *  空格
        *  分行符號
        *  多餘的字元
        *  根據層級更多地壓縮代碼

10. 使用多個網域名稱

如果你的網頁上有很多東西,建議多綁定幾個網域名稱,比如 server.example.com,server2.example.com,等等。你同時只有有限的連結數到瀏覽器,如果綁定多個網域名稱(即使使用同一IP)就可以同時下載多個對象。

11. 精簡 Cookie

就像我們的日常飲食,想要儲存健康(載入迅速)就不要吃太多的餅乾(Cookie)。多餘的 Cookie 會拖慢每個網頁的載入速度。確保你的 Cookie 已經精簡到最小,同時也最佳化下 Cookie 的使用。

12. 為 Cookie 資源使用獨立的網域名稱

為了最佳化 Cookie 的使用,要為資源使用獨立的網域名稱。這對於使用頂級 Cookie 的人很有協助,當你從上面下載檔案的同時就會附上一個 Cookie 檔案,如果使用不同的網域名稱就可以避免這種情況。例如 Yahoo! 就使用 yimg.com 存放他們的資源。

13. 最佳化 Javascript

與最佳化 CSS(#9)的同理,JS代碼同樣需要最佳化。使用“Dean Edward’s packer”精簡JS代碼中冗餘的部分。

14. 合并JS檔案

通常來說,下載一堆小指令碼比下載一個大指令碼要慢得多。就是說,合并JS代碼可以提升網頁的載入速度。最簡單的方法就是開啟檔案複製粘貼代碼(很簡單吧)。不過,有時還可以更簡單一點:
        *   PHP
        *  Smarty (PHP 範本語言)
        *  Rails
        *  ASP

15. 使用內容分髮網絡

如果你的網站有較多的國際訪客的話,建議使用內容分髮網絡(CDN)。內容分髮網絡可以自動判斷訪客的位置並選擇伺服器位置。比如,一頭澳大利亞奶牛要通過網路聯絡中國的遠房親戚,那麼網速會卡得她奶都擠不出來。但如果使用內容分髮網絡,她會被自動登陸到架設在澳大利亞的伺服器(或較近的),這樣她就會很快發現她的親戚已經改產三聚氰胺了。

 

結論

有時新增功能會像花錢一樣容易,但根據曆史經驗,更少就是更多。更少的圖片、指令碼和 widget 意味著迅速的載入,而迅速的載入則意味這更高的使用者體驗。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.