【问题标题】:What are CDN Best Practices? [closed]什么是 CDN 最佳实践? [关闭]
【发布时间】:2013-05-16 03:46:38
【问题描述】:

我最近开始使用 Rackspace Cloudfiles CDN (Limelight),对此我有一些疑问:

  1. 除了自定义 JS 代码之外,我还在使用 jQuery、jQuery UI 和 jQuery 工具。另外,我的网站是用 ASP.Net 编写的,这意味着有一些 ASP.Net 生成的 JS 代码。

现在我所做的是将所有 js(包括 jquery 代码),除了 ASP.Net 生成的 JS 合并到一个文件中。我在 Rackspace CDN 上托管它。

我想知道从 Google 托管的 CDN 获取 jQuery、jQuery UI 文件是否更有意义(我怀疑它们在提供这些文件方面会非常有效,因为它们已经在许多用户的缓存中) ?

这意味着一个额外的 HTTP 请求,所以我不确定它是否会有所帮助。

  1. 现在我的资产有多个容器。例如,在 Rackspace 中,我有 3 个容器:JS、CSS 和图像。所有 3 个的 URL 子域都不同。这会导致性能损失吗?我应该只使用一个容器(因此 CDN 使用一个域)吗?

  2. 有没有办法让 MS ASP.Net 生成的 JS 从 MS CDN 加载?根据上述问题,这会影响性能吗?

【问题讨论】:

标签: jquery cdn


【解决方案1】:

加快网站速度的#1 方法是尽量减少 HTTP 请求 (Best Practices from Yahoo)。因此,如果您已经从 CDN 提供组合的 CSS 文件,那么您正在这样做。提供一些来自 google 和一些来自您的 CDN 的服务会增加请求。

很遗憾,您不能将 CSS 和 JS 合并到一个文件中,因此您将被困在对 CSS 和 JS 的每个请求中。您可能想要验证这些是否已通过 GZIPPED 提供。

就您的图像而言,加快速度的最佳方法是尽可能使用图像精灵。

提供来自不同域的文件可能确实有意义,因为这会增加并行下载的数量。 (Another article from yahoo on this)。如果您的 js 和 css 只是两个文件,您可以将其放在一个域中,将图像放在另一个域中。

【讨论】:

  • 嗯...有趣。你的回答确实很有道理。我可能会通过一些测试来确认这一点。
  • 令人惊讶的是,Limelight CDN 不 GZIP 这些文件!我还没有这样做,但会缩小 CSS、JS 文件。
  • 来自 Yahoo 的最佳实践网站:“减少唯一主机名的数量可能会减少页面中发生的并行下载量。避免 DNS 查找会缩短响应时间,但减少并行下载可能增加响应时间。我的指导方针是将这些组件拆分为至少两个但不超过四个主机名。这样可以在减少 DNS 查找和允许高度并行下载之间取得良好的折衷。"
【解决方案2】:

将资产放在不同的域上肯定更好。

浏览器从单个主机一个接一个或按顺序加载网络资产。他们不会开始请求和下载下一个资产,直到他们完成了来自同一域的上一个资产。因此,将主机或域加倍可以将下载速度提高约 100%,因为浏览器可以同时从 2 个不同的域下载内容。

如果在您的网站上启用了 cookie 或会话,浏览器会在每次向域发出请求时发送会话 cookie,这种做法是无用的,因为它是静态内容——服务器根本不需要 cookie提供静态内容,例如图像。这不仅是对带宽的浪费,也是对通信时间的浪费。为避免这种情况,请提供未启用 cookie 的域中的所有静态内容。

相反,在更新了 JS 代码的站点上提供 JS 可能会变得棘手,因为您失去了首先针对新框架测试当前 JS 的机会。

【讨论】:

  • 是的,我已经读过 - 但我想知道有多少主机太多了?例如,我很想从 Google 加载 jquery + jquery 工具,从他们自己的 cdn 加载 jquery ui(他们免费提供一个),从 MS 的 CDN 加载 MS JS 文件等 - 但这不会导致大量 HTTP 请求?是的,这些将是无 cookie 请求,但它们不会加起来吗?
  • 我不认为这样做的主要思想是减少http请求,而是能够同时拥有多个以提高性能。因此,减少您必须针对资产本身而不是 CDS 的请求……例如在一张图像中使用所有图像并通过背景位置属性选择它们……编写更好的 js 并尝试减少它们的数量……等等
  • 啊哈!从 Yahoo 的最佳实践网站找到了一条指南:developer.yahoo.com/performance/rules.html“减少唯一主机名的数量有可能减少页面中发生的并行下载量。避免 DNS 查找会缩短响应时间,但减少并行下载可能会增加响应“
  • 是的,该指南非常好,还可以阅读 Y!Slow 指南。它们对性能提升也非常有帮助。 “我希望 Stackoverflow 的人改变这些链接目标。它现在在 _self 上太烦人了”它应该是 _blank
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-09-07
  • 2011-11-21
  • 1970-01-01
  • 1970-01-01
  • 2010-09-08
  • 2013-09-30
  • 2019-10-21
相关资源
最近更新 更多