代码之家  ›  专栏  ›  技术社区  ›  Alistair

Google CDN不是gzipping jquery

  •  8
  • Alistair  · 技术社区  · 16 年前

    http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js

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

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

    我下载了30k(它作为内容编码:gzip)

    在jquery.com等常规网站上使用jquery1.4.2时,我也遇到了这种情况。有趣的是,引用googlecdn上jquery1.3.2的堆栈溢出正在通过gzip实现。

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

    我住在澳大利亚的墨尔本。

    编辑:哦,把链接搞混了。隐马尔可夫模型 http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js

    2 回复  |  直到 16 年前
        1
  •  8
  •   Jesper M    15 年前

    关于谷歌CDN上的GZip支持:

    据我所知,它不支持Deflate,但这并不重要,因为所有主流浏览器都支持这两种格式。

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

    我已经试过了,我认为Google的CDN在发送压缩Javascript之前需要浏览器白名单。如果你有时看到来自谷歌CDN的过于肥胖的回应,那么也许这就是你被绊倒的原因。如果您想玩这个,您可以再次使用rexswain的查看器,并在其中放入一个无意义的字符串作为User-Agent头。

    关于“自动升级”URL:

    我认为在谷歌CDN上使用1.x或1.4.x链接(没有完全限定的版本号的链接)并不理想。

    第一个原因是,Google为这些url提供的缓存控制上限值很低,为1小时。当然,Google这样做是为了在jQuery的新版本发布时方便快速更新(这可能并不像最初看起来的那样对性能有害。Google还发送重新验证和最后修改的头,所以我假设Google的CDN完全支持重新验证。)

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

    结论:

    reasonable critiques against using Google's CDN . 有些团队有一个很好的构建过程,可以自动合并和缩小脚本,还可以为他们的内容提供一个快速的全局CDN。如果你是这些团队中的一员,那么也许谷歌的CDN不是你的最佳选择。但最常见的网站 提供jQuery的最好方法是 Google's CDN with a full version identifier .

        2
  •  1
  •   Anemoia    16 年前

    我的情况正好相反。

    谷歌的是24KB,微软的是70KB。。。