3 reasons why you should let Google host jQuery for you

ajax, javascript Add comments

作者鼓励大家使用 Google AJAX Libraries 来加载jQuery这样的JS包。

以前的

<script type="text/javascript" src="/js/jQuery.min.js"></script>

改成这样,方法一

<script type="text/javascript"
        src="http://www.google.com/jsapi"></script>
<script type="text/javascript">
  // You may specify partial version numbers, such as "1" or "1.2",
  //  with the same result. Doing so will automatically load the 
  //  latest version matching that partial revision pattern 
  //  (i.e. both 1 and 1.2 would load 1.2.6 today).
  google.load("jquery", "1.2.6");

  google.setOnLoadCallback(function() {
    // Place init code here instead of $(document).ready()
  });
</script>

方法二(推荐)

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js"></script>
<script type="text/javascript">
  $(document).ready(function() {
    // This is more like it!
  });
</script>

原因有以下三点:

  1. 缩短延时(Decreased Latency)。因为Google服务器使用了类似于CDN的技术,会自动选择离访问者物理地址更近的服务器。所以通常情况下加载速度比强制从当前服务器上下载理论上要快。
  2. 增强并行(Increased parallelism)。因为访问一个网站,浏览器对于同时并行请求同一服务器的线程是有限制的,一般低于2个线程(这样做的目的是降低服务器的负载),当使用Google host来加载JS包时,由于从不同的服务器上读取,可以解放更多的线程来加载本地内容。当然如果浏览器的并行线程被修改成比较大的数,这个好处就不是很明显了。
  3. 更好缓存(Better caching)。这个好处的体现,主要是在如果多个网站都是使用了Google host来加载同一个JS包,浏览器再进入下一个网站时,会直接从缓存中读取。而如果同一个包都是放在本地服务器上,虽然内容相同,但是由于域名不同,浏览器也会重新从本地服务器上下载。

当然从文章后面的回复中,可以该方法也有不足的地方。

如果访问者所在地把Google code 屏蔽了,就不能加载。另外在开发的时候,最好还是使用本地版本。还有隐私问题,从Google host上加载,Google会记录访问者信息。

至于上面两种不同实现方法的区别,到作者网站上看看吧。

Link: 3 reasons why you should let Google host jQuery for you

  • Share/Bookmark

Related posts:

  1. The best way to load external JavaScript 作者说的最好的加载JS方法,即是如何无阻塞的加载JS,作者提到了三个技巧 创建两个JS文件, 第一个只包含动态加载JS的必要代码,第二个包含除必要的一些初始化的所有内容; 创建加载第一个JS文件的<script>标签,并把它放在页面的最底端,</body>标签里面; 创建第二个<script>标签,加载第二个JS文件和运行附加的初始化代码。 作者还提供了一个例子,这是第一个JS文件的内容 1 2 3 4...

Related posts brought to you by Yet Another Related Posts Plugin.

Leave a Reply


WP Theme & Icons by N.Design Studio
Entries RSS Comments RSS Log in