为啥推荐使用第三方CDN加速后的jquery库文件

为什么推荐使用第三方CDN加速后的jquery库文件
 
 

建议通过谷歌的CDN-Content Delivery Network(内容分发网络)来让你的网站加载jquery库文件。有的同学可能会问了,为什么要加载谷歌的jquery库文件呢?(PS:我们一般不都是加载自己服务器上的jquery库文件的吗?)。呵呵~~其实我也和你们一样想的,也一直都是加载自己的服务器上的jquery文件。

下面我来和大家说说,使用第三方jquery库文件的好处。

  1. 减少等待时间
    大家应该在感慨jquery的强大,也在感慨jquery的团队也是如此之强大,呵呵~现在最新的jquery已经出到1.8.2版本了呢,但是让人很不爽的是即使是mini压缩过后的代码都有91.2KB。但是不知道大家有没有去官方首页看过。 
    为啥推荐使用第三方CDN加速后的jquery库文件

    jquery1.81

    呵呵~如果上图,32KB,那是经过minified and gzipped之后的文件体积,呵呵~~我想,使用谷歌的代码分发系统也许差不多要下载的文件就是32KB了吧~~(呵呵~猜测)。

    CDN-Content Delivery Network(内容分发网络)的缩写,通过各种各样的服务途径把你的一些静态内容分散开来,当用户的浏览器提交这些文件的链接请求,他们便会自动下载网络上最近的可用的文件。
    因为这个原因:任何使用你的服务的用户从谷歌下载JQuery库都将获得比从你自己的服务器上下载更快的速度。其实有很多的CDN服务可与谷歌的相比拟,但是他们很难超越谷歌的免费服务的优势,这个益处足以决定问题,但这仅仅是一部分。

  2. 增加网页的同时载入速度
    为了避免服务的过载,浏览器限制了同时连接的数目,依据不同的浏览器,这个限制可能是每个机房仅仅两个之少。
    使用谷歌的AJAX内容服务网络来响应你的网站,使你本地服务器上更多服务可以同时进行。
  3. 更好的缓存
    利用谷歌AJAX图书馆内容发布服务的最大好处是你的用户根本不需要下载jQuery.不论你的缓存多么强大,如果你用自己的服务器提供jQuery,那么你的用户至少要下载一次它,某个用户很有可能在他们浏览器的缓存区里下载了许多完全相同的jQuery.min.js的拷贝版本,但是当他们第一次访问你的网站的时候,这些拷贝版本会被忽略。
    另一方面,当浏览器检测到同样版本的指向谷歌的链接,它就会知道这是下载同一个文件,不仅是谷歌的服务器会返回一个304(不需要修改文件的指令,即服务器上的文件未改动过)来回复一个重复的请求,而且会命令浏览器的缓存该文件长达一年的时间。
    这意味着即使一些人访问了数百的使用谷歌服务的jQuery网站,他们只需要下载一次就够了。
上面的三个好处是我从三个使用谷歌加载jQuery库的理由(译)这篇文章转过来的。

不过好像最近天朝对谷歌的东西有点反感呀,有的时候谷歌的东西会打不开,那么会不会有一天使用这种方式加载jquery库文件也会失败呢?呵呵~~万事皆有可能,谷歌还宕过机呢~呵呵~不要紧,告诉你一个万全的方法:

<SCRIPT type=text/javascript src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></SCRIPT>
<script>!window.jQuery && document.write('<SCRIPT src="jquery-1.8.2.min.js"><\\/SCRIPT>');</script>

将上面的代码放到你的html代码的头部。意义是这样的:首先去加载谷歌的jquery库文件,如果没有加载成功的话,那么就只好加载自己服务器上的jquery库文件咯。

速度和稳定的原因,有的人可能觉得国内站点会快一些,其它我觉得吧国内的新浪再快也不可能快过google的。再者,像我可能一个月访问一次sina,但我一天要访问N多次google.
建议大家选用顺序为Google,新浪,微软
新浪的:

http://lib.sinaapp.com/js/jquery/1.8.2/jquery.js

http://lib.sinaapp.com/js/jquery/1.8.2/jquery.min.js

其他版本的: http://lib.sinaapp.com/?path=/jquery

微软的:

http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.8.2.js

http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.8.2.min.js

其他版本的:http://www.asp.net/ajaxlibrary/cdn.ashx

Google的:

path: https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js
path(u): https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.js

其他版本的:http://code.google.com/intl/zh-CN/apis/libraries/devguide.html#jquery