jquery 是前端設計中很經常使用到的一個js庫,不少頁面都要引用它,那麼如何快速的加載這是一個前端優化的問題。前端
以jquery1.6爲例,min版大概90kb左右,不算大,不過就我以前的對一部分博客進行分析的結果,大部分的頁面體積都在50kb之內,那麼相比較而言,這個jquery的90kb就不能算小了。若是你的網站速度不錯,基本能達到普通用戶(這裏假設大部分是2M寬帶用戶)的最大下載速率200kb左右,那麼一切沒有問題。可是若是你的網站部署在性能通常的虛擬主機上(這樣的虛擬主機不少都限制網速),或者部署在外國服務器上,那麼你就必須介意網速了。python
如何快速加載jquery等經常使用庫呢?使用cdn分發是一個辦法。我從網上搜索了一番,發現比較經常使用且免費的cdn分發js庫有4家人,谷歌、新浪、微軟、及官方。以jquery1.6爲例,他們的網址分別爲:jquery
http://code.jquery.com/jquery-1.6.min.jsweb
http://lib.sinaapp.com/js/jquery/1.6/jquery.min.jsajax
http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.6.min.jsapi
http://ajax.googleapis.com/ajax/libs/jquery/1.6/jquery.min.js服務器
那麼要選哪一個好呢,標準很簡單,哪一個快哪一個好。因此下面進行一個測試。網絡
網絡評論app
在網上查詢了一番,大部分人都對google的服務存在必定擔心,擔憂不知道哪天就訪問不了了,同時對全部國外產品都存在同樣的憂慮。因而你們都比較推薦國內的新浪雲(lib.sinaapp.com)提供的分發資源。其實我也是這麼認爲的。不過具體仍是得實測一番。前端優化
測試環境
我使用了4個方法進行測試。
測試一
使用百度統計的「網站速度診斷」功能。登陸百度統計後臺,進入該功能頁面,分別輸入4個網址,記錄得分。
結果以下:
谷歌 | 新浪 | 微軟 | 官網 | |
電信 | 0.30 | 0.31 | 1.25 | 0.92 |
網通 | 0.22 | 0.32 | 0.41 | 2.40 |
彷佛新浪和谷歌速度都不錯。
測試二:
10M移動寬帶,本機測試。
我使用python寫了一段很是簡單的下載功能,用來測試。代碼以下:
import urllib2 import time urls=[{'name':"jq",'url':"http://code.jquery.com/jquery-1.6.min.js"}, {'name':"sina",'url':"http://lib.sinaapp.com/js/jquery/1.6/jquery.min.js"}, {'name':"ms",'url':"http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.6.min.js"}, {'name':"google",'url':"http://ajax.googleapis.com/ajax/libs/jquery/1.6/jquery.min.js"}] for url in urls: totalTime=0 for i in range(5): start=time.time() urllib2.urlopen(url['url']) end=time.time() totalTime+=(end-start) print url['name'],totalTime/5
運行後的結果爲:
jq 4.34320001602
sina 1.08899998665
ms 2.61820001602
google 0.640999984741
谷歌速度第一,新浪第二。
測試三:
東京Amazon ec2 服務器。一樣運行上面的python腳本。
運行後結果爲:
jq 0.662930107117
sina 0.820287418365
ms 0.174965858459
google 0.18151807785
微軟第一,google第二,官網也有不俗表現,國內的新浪悲劇了。
測試四:
2M電信寬帶,本機測試。一樣執行上面的python語句。
運行後結果爲:
jq 0.461800003052
sina 1.87899999619
ms 2.12319998741
google 0.244599962234
谷歌第一,新浪跌至第三。
在排除第三個測試,即只考慮國內環境狀況下。谷歌依然是最快的,可是基於保穩定,新浪也是很好的選擇。
而國外,大公司是不二選擇,微軟、谷歌都是優秀的。