谷歌CDN没有对jquery进行gzip压缩

8
如果我进入这里: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(并且它以Content-Encoding: gzip发送)。
当我在常规网站中使用jquery 1.4.2时,例如jquery.com,我也会遇到此问题。有趣的是,引用Google CDN上的jquery 1.3.2的Stack Overflow是经过gzip压缩的。
为什么会发生这种情况?这是与Google有关的问题还是我漏掉了什么?
我住在澳大利亚墨尔本。
编辑:糟糕,链接弄混了。嗯,http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js对我有效...看起来只是1.4版本的问题。

2
我认为你的第一个链接可能不正确...也许你想说的是 http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js ? - Jason Hall
哎呀,那 http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js 怎么办?这个是我想要链接的,但它对我来说不起作用,所以当他们发布 1.4.3 版本时,它会自动更新。 - Alistair
2个回答

8

关于Google CDN上的GZip支持:

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

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

我尝试过一些操作,发现Google CDN在发送压缩的Javascript之前需要进行浏览器白名单认证。如果您有时从Google CDN收到过大的响应,那么可能就是这个问题。如果您想尝试这个功能,可以再次使用Rex Swain的查看器,并将无意义的字符串放入User-Agent头。

关于“自动升级”URL:

在Google CDN上使用1.x或1.4.x链接(没有完全合格的版本号)并不理想。

首先,Google以低的Cache-Control max-age值(1小时)提供这些URL。当然,Google这样做是为了在发布新版本的jQuery时快速更新。(这可能对性能的影响并不像最初看起来的那样糟糕。Google还发送重新验证和Last-Modified头,因此我认为Google的CDN完全支持重新验证。)

我不喜欢自动升级URL的主要原因是:如果您从其中一个具有自动升级功能的URL中提供jQuery,则以后可能会出现未知的不兼容问题。将来的jQuery版本可能会与您使用的许多第三方脚本之一发生冲突,并导致页面默默崩溃。

结论:

对于使用Google CDN存在合理批评意见的情况。一些团队拥有出色的构建流程,包括自动脚本组合和最小化,以及快速的全球CDN来处理他们的内容。如果您在这些团队中,那么也许Google CDN并不是您的最佳选择。但对于大多数“普通”网站,使用带有完整版本标识符的Google CDN是提供jQuery的最佳方式。


1

我是反过来的。

谷歌的大小为24KB,微软的大小为70KB...


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接