【问题标题】:Why does HTML5Boilerplate and others use a CDN for jQuery?为什么 HTML5 Boilerplate 和其他人为 jQuery 使用 CDN?
【发布时间】:2013-11-25 22:45:23
【问题描述】:

HTML5Boilerplate 等[需要引用],大家都知道这样加载jQuery:

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

这对用户来说更好吗? 保持低 DNS 查找是一个好习惯,除非我们还从 Google 获取 jQuery-UI 或其他框架,否则这是我们获得的唯一资源他们的 CDN。从我们自己的服务器提供服务会更快吗?

这对服务器来说更好吗?我们真的为这个相对较小的文件使用 Google 的 CDN 而不是自己提供它来节省这么多吗?

为什么只有 jQuery?为什么只有 Google? HTML5Boilerplate 包括 normalize.css 和 modernizr.js,这两个文件都是流行的文件(可以说比 jQuery[disputed] 更流行和更重要)并且可用http://cdnjs.com/ 和许多其他 CDN。如果我们正在加载 jQuery,为什么不加载 2 个呢? jQuery 是从 CDN 加载的,因为它被延迟加载到页面底部,因此可以等待额外的 .1 秒从 CDN 获取它?我知道 Google CDN 是一个巨头,但其他 CDN 可以处理大量流量并不是不可想象的。

编辑:查看 Stack Overflow 的此页面代码,他们使用自己的 CDN 获取 10 多种资源,然后使用 Google 获取 jQuery。这一定是有充分理由的,对吧?

【问题讨论】:

  • “从我们自己的服务器上提供服务会更快吗?” 一般来说,不会。 “这对服务器来说更好吗?” 一种或另一种方式几乎没有区别
  • cdn 是无 cookie 的,而且跨域传播资源有助于加快加载速度,因为浏览器被限制为每个域的并发请求数

标签: javascript jquery html performance html5boilerplate


【解决方案1】:

这对用户来说更好吗?

是的,尤其是流行的库,因为它们可能已经缓存在用户的浏览器中。 Google 服务器比您的服务器更快、更可靠;大多数 CDN 也是如此。

这对服务器来说更好吗?

好吧,您提供的数据更少。

为什么只有 jQuery?为什么只是谷歌?

不仅仅是 jQuery,不仅仅是谷歌。关键是尽可能使用 CDN(并回退到您的服务器版本)以从速度和缓存中受益。 Normalize 非常小,但我认为您仍然可以从使用 CDN 中受益。至于 Modernizr,您希望使用根据您的需要构建的自定义版本,这是使用该库的推荐方式。

【讨论】:

    【解决方案2】:

    使用 cdn 的一些观点是,用户可能会将其保存在缓存中,他们不必专门为您的网站下载文件。

    至于使用 Google CDN,它们非常庞大,并且拥有惊人的基础设施;那为什么不呢?

    我也相信 google 隶属于 html5boiler plate(至少有一位维护者为 google 工作)

    【讨论】:

    • Paul Irish 确实为 Google 工作。但是……这绝对不是决策过程中的一个因素。 CDN 链接早于 Paul 在 Google 工作的时间,实际上,它的持续存在是因为它是最好的默认设置。实际上,它每隔一两年就会重新访问一次。
    • 谢谢罗伯。我并不是在暗示那里有不公平的优势。
    • 我不认为你是。我只是想澄清一下代码进入项目的方式。
    【解决方案3】:

    当您从 Google 提取 jQuery 时,它很可能已经从以前的站点缓存,从而阻止了额外的下载。

    【讨论】:

      【解决方案4】:

      我们已经在 repo 上多次讨论过这个问题。这是最recent。很多意见,一些测试,一些超级聪明,超级有经验的人在那里提供他们的 2 美分。一个有趣的,有启发性的讨论。

      一般来说,您对 h5bp 的任何疑问都已在某处公开讨论过。

      归根结底,使用 CDN 是因为它是最好的默认配置。如果人们下载 HTML5 Boilerplate 并且对代码不做任何其他事情,那么将其链接到 Google CDN 是最好的默认设置。它提供地理优化、快速服务器、无 cookie 域和中奖的机会

      到目前为止,它也是最受欢迎的 CDN,因此,如果您要使用 3rd 方服务,那么如果您希望有机会获得缓存副本,则可以使用该服务。

      同样,如果您有任何其他问题,该问题中会有 的详细信息。

      【讨论】:

      • 很棒的链接。感谢您的信息。
      • 我的荣幸。这是在项目决策中进行讨论的一个很好的例子,它基本上可以回答你对推理的任何好奇。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-10-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多