【问题标题】:Google CDN not gzipping jquery谷歌 CDN 不压缩 jquery
【发布时间】:2011-03-01 12:32:27
【问题描述】:

如果我在这里导航:http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js

我使用 Firefox 3.6.3 下载了 70k,我可以确认它正在发送 Accept-Encoding: gzip。

如果我使用微软的:http://ajax.microsoft.com/ajax/jquery/jquery-1.4.2.min.js

我下载了 30k(它以 Content-Encoding: gzip 的形式出现)

在常规站点(例如 jquery.com)中使用 jquery 1.4.2 时,我也遇到了这种情况。有趣的是,在 google cdn 上引用 jquery 1.3.2 的堆栈溢出是通过 gzip 压缩的。

为什么会这样?是谷歌的某种问题还是我遗漏了什么?

我住在澳大利亚墨尔本。

编辑:哎呀混淆了链接。嗯 http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js 为我工作.. 看起来它只是 1.4 包含的一个

【问题讨论】:

标签: jquery gzip cdn


【解决方案1】:

关于 Google CDN 上的 GZip 支持:

Google 的 CDN 支持 GZip 压缩。据我所知,它不支持 Deflate,但这并不重要,因为所有主流浏览器都支持。

您可以使用Rex Swain's very nice HTTP viewer 自行验证;只需在 Accept-Encoding 字段中输入“gzip”即可。

我玩了一点,我认为 Google 的 CDN 需要在发送压缩的 Javascript 之前将浏览器列入白名单。如果您有时看到来自 Google 的 CDN 的响应太胖,那么也许这就是让您绊倒的原因。如果你想玩这个,你可以再次使用 Rex Swain 的查看器,并将一个无意义的字符串作为 User-Agent 标头。

关于“自动升级”网址:

恕我直言,在 Google 的 CDN 上使用 1.x 或 1.4.x 链接(没有完全限定版本号的链接)并不理想。

第一个原因是 Google 正在以 1 小时的低 Cache-Control max-age 值提供这些 URL。 Google 这样做当然是为了在新版本的 jQuery 发布时促进快速更新。 (这可能并不像最初看起来那样糟糕。Google 还会发送重新验证和 Last-Modified 标头,因此我假设 Google 的 CDN 完全支持重新验证。)

我不喜欢自动升级 URL 的主要原因是:如果您从具有自动升级功能的 URL 之一提供 jQuery,那么以后您将面临未知的不兼容问题。 jQuery 的未来版本可能与您正在使用的许多第 3 方脚本之一发生冲突,并导致您的页面静默中断。

结论:

reasonable critiques against using Google's CDN。一些团队有一个很好的构建过程,包括自动脚本组合和缩小,以及他们内容的快速全球 CDN。如果您是其中一个团队的成员,那么 Google 的 CDN 可能不是您的最佳选择。但是对于大多数“常见”站点,提供 jQuery 的最佳方式是使用 Google's CDN with a full version identifier

【讨论】:

    【解决方案2】:

    我是反过来的。

    Google 的 24KB,MS 的 70KB...

    【讨论】:

      猜你喜欢
      • 2022-04-11
      • 2012-01-04
      • 2011-09-19
      • 1970-01-01
      • 2015-04-30
      • 1970-01-01
      • 1970-01-01
      • 2015-02-25
      • 2016-08-20
      相关资源
      最近更新 更多