谷歌CDN没有gzipping jquery

Ali*_*air 8 jquery gzip cdn

如果我在这里导航: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时,我也遇到了这种情况.很有趣的是,在google cdn上引用jquery 1.3.2的堆栈溢出正在通过gzip压缩.

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

我住在澳大利亚墨尔本.

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

Jes*_*r M 8

关于Google CDN上的GZip支持:

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

您可以使用Rex Swain非常好的HTTP查看器自行验证; 只需在Accept-Encoding字段中输入"gzip"即可.

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

关于"自动升级"网址:

恕我直言,在谷歌的CDN上使用1.x或1.4.x链接并不理想(没有完全合格的版本号).

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

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

结论:

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