3

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

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

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

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

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

欢迎任何经验/想法。

谢谢。

4

1 回答 1

0

你可以看看为什么我应该使用谷歌的 CDN 来处理 jQuery?问题,为什么 CDN 是更好的解决方案。

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

它增加了缓存命中的机会。(随着越来越多的网站遵循这种做法,越来越多的用户已经准备好文件。)

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

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

它确保用户将获得地理上接近的响应。(谷歌在世界各地都有服务器,进一步降低了延迟。)

(可选)它们会自动使您的脚本保持最新。(如果你喜欢“坐以待毙”,你总是可以使用他们提供的任何脚本的最新版本。这些可以修复安全漏洞,但通常只会破坏你的东西。)

于 2012-08-24T15:46:12.960 回答