如果我导航到这里: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(它以内容编码:gzip 的形式出现)
我在常规网站(例如 jquery.com)中使用 jquery 1.4.2 时也遇到了这种情况。有趣的是,引用 google cdn 上的 jquery 1.3.2 的堆栈溢出是通过 gzipped 来的。
为什么会发生这种情况?这是谷歌的某种问题还是我错过了什么?
我住在澳大利亚墨尔本。
编辑:哎呀混淆了链接。唔http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js对我有用..看起来只是 1.4 版本的
关于 Google CDN 上的 GZip 支持:
Google 的 CDN 支持 GZip 压缩。据我所知它不支持 Deflate,但这并不重要,因为所有主流浏览器都支持两者。
您可以使用自己验证这一点Rex Swain 非常好的 HTTP 查看器;只需在接受编码字段中输入“gzip”即可。
我玩了一下,我认为 Google 的 CDN 需要在发送压缩的 Javascript 之前将浏览器列入白名单。如果您有时看到 Google CDN 的响应过于丰富,那么也许这就是让您绊倒的原因。如果你想玩这个,你可以再次使用 Rex Swain 的查看器,并在 User-Agent 标头中放入一个无意义的字符串。
关于“自动升级”URL:
恕我直言,在 Google CDN 上使用 1.x 或 1.4.x 链接(没有完全限定版本号的链接)并不理想。
第一个原因是 Google 为这些 URL 提供 Cache-Control max-age 值较低的 1 小时。 Google 这样做当然是为了在 jQuery 新版本发布时方便快速更新。 (这可能并不像最初看起来那样对性能造成影响。Google 还发送重新验证和 Last-Modified 标头,因此我认为 Google 的 CDN 完全支持重新验证。)
我不喜欢自动升级 URL 的主要原因是:如果您从具有自动升级功能的 URL 之一提供 jQuery,那么您以后将面临未知的不兼容问题的风险。 jQuery 的未来版本could与您正在使用的众多第三方脚本之一发生冲突,并导致您的页面无声地中断。
结论:
有对使用 Google CDN 的合理批评。一些团队拥有出色的构建流程,具有自动脚本组合和缩小功能,以及针对其内容的快速全球 CDN。如果您属于这些团队之一,那么 Google 的 CDN 可能不是您的最佳选择。但从大多数“常见”网站来看,服务 jQuery 的最佳方式是使用具有完整版本标识符的 Google CDN.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)