谷歌CDN没有gzipping jquery

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

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

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

我下载30k(它来自内容编码:gzip)

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

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

我住在澳大利亚墨尔本。

编辑:oops混淆了链接。 嗯http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js对我有用..看起来它只是1.4包含一个

关于Google CDN上的GZip支持:

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

您可以使用Rex Swain非常好的HTTP查看器自行validation; 只需在Accept-Encoding字段中输入“gzip”即可。

我玩了一下,我认为谷歌的CDN在发送压缩的Javascript之前需要浏览器白名单。 如果你有时看到来自谷歌CDN的过于激烈的回应,那么也许这就是绊倒你的原因。 如果你想玩这个,你可以再次使用Rex Swain的查看器,并将一个无意义的字符串作为User-Agent标题。

关于“自动升级”url:

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

第一个原因是Google正在提供缓存控制最大值为1小时的低URL。 谷歌当然这样做是为了在新版本的jQuery发布时促进快速更新。 (这可能不像最初看起来那样糟糕.Google还会发送重新validation和Last-Modified标头,因此我假设Google的CDN完全支持重新validation。)

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

结论:

对使用谷歌的CDN有合理的批评 。 一些团队有一个很好的构建过程,自动脚本组合和缩小,以及快速的全局CDN的内容。 如果您在其中一个团队中,那么Google的CDN可能不是您的最佳选择。 但是形成大多数“常见”网站, 提供jQuery最佳方式是使用带有完整版本标识符的Google CDN 。

我反过来了。

谷歌一个是24KB,MS一个是70KB ……