几个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个网址,记录得分。

web-speed

结果如下:

 

  谷歌 新浪 微软 官网
电信 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

谷歌第一,新浪跌至第三。

总结

在排除第三个测试,即只考虑国内环境情况下。谷歌依然是最快的,但是基于保稳定,新浪也是很好的选择。

而国外,大公司是不二选择,微软、谷歌都是优秀的。

posted @ 2012-02-29 19:15 看那边的人 阅读(...) 评论(...) 编辑 收藏