从谷歌的CDN或本地副本提供jQuery UI?

时间:2011-10-15 13:27:57

标签: javascript jquery jquery-ui

虽然从谷歌的CDN中提供jQuery更好jQuery UI是一个不同的野兽。我的本地修改后的副本重量为60kb,谷歌的CDN为200kb。

  • 有多少网站使用CDN有没有数字? (阅读:有多少用户在缓存中拥有它)。我如何知道/计算在本地服务是否更好?

5 个答案:

答案 0 :(得分:9)

Google的jquery UI CDN重达51 Kb:

https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/jquery-ui.min.js

HTML5 Boilerplate使用jquery加载的后备:

<!-- 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> 

您可以将它应用于jquery ui:

<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/jquery-ui.min.js"></script>
<script>window.jQuery.ui || document.write('<script src="js/jquery-ui-1.8.16.min.js">\x3C/script>')</script>

您加载CDN版本然后检查是否存在jquery ui(您无法保证100%的正常运行时间为任何CDN)。如果jquery ui不存在,请回到当地。通过这种方式,如果他们已经在缓存中,你就可以了。如果他们不这样做,并且无法以任何理由检索CDN,那么您可以与当地人一起去。安全失败。

答案 1 :(得分:9)

答案 2 :(得分:2)

我认为大小比较忽略了CDN的重点。通过从公共的常用CDN提供jQuery(或其他库)的副本,许多用户在到达您的站点之前将拥有该库的缓存副本。当它们这样做时,下载的有效大小为0KB,而服务器的有效大小为60KB。

Google的CDN使用最广泛,因此如果您引用它,您将获得缓存命中的最佳机会。

有关比较各种CDN的数字,请参阅this article

对于它的价值,谷歌jQuery副本的缩小版本远小于你提到的大小。

答案 3 :(得分:1)

我会说你服务器上的负载是什么。对于用户而言,如果他们从您的服务器或谷歌的服务器下载它并不重要。如今,140kb的足够带宽很容易被用户忽视。

现在真正的问题是你是否对jQuery UI进行了更改。如果是,那么您应该提供自己的副本。如果没有,那么谷歌的服务是可以的。因为毕竟你的目标是降低你的负担。

此外,缓存不仅发生在用户的浏览器上,也发生在他们正在访问的内容分发节点上。所以可以肯定地说谷歌的副本几乎可以肯定地被缓存。

答案 4 :(得分:1)

如果尺寸很小,重要的是第一次访问您网站的http请求数量。

例如,如果您的站点配置了脚本组合和缩小,那么第一次访问者的整个脚本是一个请求或包含在html本身中,使用本地副本更好,因为即使JqueryUI的缓存副本也不会更快比一次显示的网站的所有脚本(缓存的呼叫仍然必须出去检查修改)。

如果您没有良好的脚本组合和缩小设置(因此您将从您的站点或其他地方单独发送jqueryui),请尽可能使用外部缓存。

相关问题