几个jquery分发库速度测评
jquery 是前端设计中很常用到的一个js库,很多页面都要引用它,那么如何快速的加载这是一个前端优化的问题。
以jquery1.6为例,min版大概90kb左右,不算大,不过就我之前的对一部分博客进行分析的结果,大部分的页面体积都在50kb以内,那么相比较而言,这个jquery的90kb就不能算小了。如果你的网站速度不错,基本能达到普通用户(这里假设大部分是2M宽带用户)的最大下载速率200kb左右,那么一切没有问题。但是如果你的网站部署在性能一般的虚拟主机上(这样的虚拟主机很多都限制网速),或者部署在外国服务器上,那么你就必须介意网速了。
如何快速加载jquery等常用库呢?使用cdn分发是一个办法。我从网上搜索了一番,发现比较常用且免费的cdn分发js库有4家人,谷歌、新浪、微软、及官方。以jquery1.6为例,他们的网址分别为:
http://code.jquery.com/jquery-1.6.min.js
http://lib.sinaapp.com/js/jquery/1.6/jquery.min.js
http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.6.min.js
http://ajax.googleapis.com/ajax/libs/jquery/1.6/jquery.min.js
那么要选哪个好呢,标准很简单,哪个快哪个好。所以下面进行一个测试。
网络评论
在网上查询了一番,大部分人都对google的服务存在一定担忧,担心不知道哪天就访问不了了,同时对所有国外产品都存在一样的忧虑。于是大家都比较推荐国内的新浪云(lib.sinaapp.com)提供的分发资源。其实我也是这么认为的。不过具体还是得实测一番。
测试环境
我使用了4个方法进行测试。
- 利用百度统计的一个功能“网站速度诊断”。
- 利用单位的10M宽带,本机测试。
- 利用电信的2M宽带,本机测试。
- 利用Amazon ec2 东京节点,也就是本博客服务器进行测试。
测试一
使用百度统计的“网站速度诊断”功能。登录百度统计后台,进入该功能页面,分别输入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
谷歌第一,新浪跌至第三。
总结
在排除第三个测试,即只考虑国内环境情况下。谷歌依然是最快的,但是基于保稳定,新浪也是很好的选择。
而国外,大公司是不二选择,微软、谷歌都是优秀的。