我应该在优化的javascript构建中嵌入第三方JavaScript库吗?

时间:2012-08-24 15:42:17

标签: javascript requirejs

我正在使用优秀的requirejs优化器来压缩Web应用程序的代码。

该应用程序使用了大量第三方库。我有几个选择:

  • 让用户从我的服务器单独下载所有第三方库
  • 让用户从CDN下载所有第三方库(如果有)
  • 用户requirejs在单个文件中生成所有这些库的“压缩”版本

现在,我知道缓存和/或CDN将有助于获取每个库需要多长时间,但是如果我有15个库,我仍然会得到15个http请求;如果我的应用程序的实际代码最终在一个或两个相对较小的文件中提供,那就更烦人了。

那么每种方法的优缺点是什么?此外,我想如果我将它们捆绑在我的应用程序中(而不是指向CDN?),我实际上会“重新分配”(在常见的FOOS许可证意义上)库。

欢迎任何经验/想法。

感谢。

1 个答案:

答案 0 :(得分:0)

您可以查看Why should I use Google's CDN for jQuery?问题,为什么CDN是更好的解决方案。

  

它增加了可用的并行度。 (大多数浏览器只会   从任何给定的站点一次下载3或4个文件。)

     

它增加了缓存命中的可能性。 (作为更多的网站   按照这种做法,更多用户已准备好文件。)

     

确保有效载荷尽可能小。 (谷歌可以   以多种格式预压缩文件(如GZIP或   DEFLATE)。这使得下载时间非常小,因为它是   超级压缩,不会动态压缩。)

     

它减少了服务器使用的带宽量。 (谷歌是   基本上提供免费带宽。)

     

确保用户获得地理上接近的响应。   (谷歌的服务器遍布全球,进一步减少了   等待时间。)

     

(可选)它们会自动使您的脚本保持最新状态。 (如果   你喜欢“在裤子的座位上飞”,你可以随时使用   他们提供的任何脚本的最新版本。这可以解决安全问题   洞,但通常只是打破你的东西。)