从谷歌的ajax api库中包含Jquery库有哪些优点?

3

可能是重复问题:
为什么我应该使用Google的CDN来获取jQuery?

我看到很多网络程序员从Google的ajax api库中包括Jquery库。除了节省一些空间外,不将这些库托管在我们的服务器上是否有任何真正的优势?这样做是一个好习惯吗?


https://dev59.com/2HI95IYBdhLWcg3wtwf4 - ScottE
4个回答

4

企业应该使用CDN的5个理由
使用内容分发网络的7个理由

CDN即内容分发网络(托管库)

尽管你应该始终拥有本地缓存以防远程存储失败。(HTML5 Boilerplate很好地演示了这一点):

<!-- Grab Google CDN's jQuery, with a protocol relative URL; fall back to local if necessary -->
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.js"></script>
<script>window.jQuery || document.write('<script src="js/libs/jquery-1.5.1.min.js">\x3C/script>')</script>

4
让谷歌为您托管API有几个优点。
1. 减少延迟
CDN(内容分发网络)将您的静态内容分布在各种不同的物理位置的服务器上。当用户的浏览器解析这些文件的URL时,它们的下载将自动定位到网络中最近可用的服务器。
对于谷歌的AJAX库CDN而言,这意味着任何不在物理上靠近您的服务器的用户都能够比强制他们从您任意位置的服务器下载jQuery更快地下载它。
虽然有一些与谷歌相媲美的CDN服务,但很难打败免费的价格!仅凭这一点就足以决定问题了,但还有更多好处。
2. 增加并行性
为避免过度加载服务器,浏览器限制可以同时进行的连接数。根据使用的浏览器,此限制可能低至每个主机名两个连接。
使用Google AJAX Libraries CDN可以消除对您站点的一个请求,从而允许更多的本地内容并行下载。对于拥有六个并发连接浏览器的用户来说,这没有太大的差异,但对于那些仍在运行只允许两个连接的浏览器的用户来说,差异是明显的。
3. 更好的缓存
使用Google AJAX Libraries CDN的最大好处可能是您的用户根本不需要下载jQuery。
无论您的站点优化得有多好,如果您在本地托管jQuery,则您的用户至少必须下载一次。每个用户可能已经在其浏览器缓存中拥有数十个相同的jQuery副本,但是当他们访问您的站点时,这些jQuery副本将被忽略。
然而,当浏览器看到CDN托管的jQuery引用时,它会理解所有这些引用确实指的是完全相同的文件。由于所有这些CDN引用都指向完全相同的URL,因此浏览器可以信任这些文件真正是相同的,并且如果已经缓存,则不会浪费时间重新请求该文件。因此,浏览器能够使用已缓存在磁盘上的单个副本,而不管CDN引用出现在哪个站点上。
这创建了一个强大的“跨站点缓存”效果,所有使用CDN的站点都受益。由于谷歌的CDN提供服务时使用的头部尝试将文件缓存长达一年,因此这种效果确实具有惊人的潜力。由于互联网上许多最繁忙的站点已经使用谷歌CDN来提供jQuery,因此很可能许多用户在访问使用CDN的站点时永远不会发出一次HTTP请求来获取jQuery。
即使有人访问了数百个使用相同谷歌托管版本的jQuery的站点,他们也只需要下载一次!

2

优点:

  • 节省流量。jQuery等工具会占用大量流量,而Google等CDN服务专门用于解决这个问题,如果有人能够提供这样的内容,比这些网络更快。

  • 长期以来,浏览器无法从一个域名加载超过两个Javascript文件。如果您使用来自google.com的jQuery,则您的浏览器可以同时加载其他应用程序特定文件。今天是否重要是个问题

  • 许多人使用Google或Microsoft服务或访问与其jQuery版本链接的网站。这意味着您有很大的机会,您的浏览器已经在某个地方缓存了jQuery - 加载时等待时间更短!

缺点:

  • 如果没有互联网连接(仅限本地局域网应用程序),则无法使用它

0
  • 用户访问您的网站时,他们已经缓存了Google的版本,而不是您自己托管的版本,这样速度会更快,可能性更大。

  • 您不必托管它

  • 您不需要处理缓存(除非您使用备用方法且Google的版本已停止)

  • 如果用户在欧洲,而您的服务器在法戈,则他们很可能从更近的服务器下载Google的版本,速度更快,可能性更大。

  • 节省带宽(每一点都很重要,尤其是当您正在支付时)

我建议您查看Html5Boilerplate,他们实现了一个很好的备用方法,以便在无法访问Google的CDN时使用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接