我应该将javascript框架与我的应用程序捆绑在一起还是使用公共CDN

Should I bundle a javascript framework with my application or use a public CDN?

本文关键字:CDN 在一起 框架 javascript 我的 应用程序 我应该      更新时间:2023-09-26

大约两三年前,我会把这个答案总结为。

  • 将所有 js 编译到一个文件并进行缩小。
  • 将所有 CSS 编译到一个文件中并缩小。
  • 异步加载外部脚本。
  • 将缓存控制标头设置为遥远的未来。
  • 用于失效的指纹资产 URL。
  • 使用您自己的 CDN。

现在应用程序在javascript上似乎要重得多。我已经看到浏览器能够打开更多并行连接的证据。

当前包含静态资产时 Web 性能的最佳实践是什么?

当我使用像angular,backbone或ember这样的框架时,我应该将框架与我的应用程序捆绑在一起,还是使用公共CDN(如googles https://developers.google.com/speed/libraries/)并仅捆绑我的应用程序代码?

我会说答案是...这要看情况。 我很欣赏这不是很有用,所以我会扩展。

  • 如果您正在编写内部(内部网)应用程序,将框架捆绑到您的应用程序中会更好、更高效。 然后,您的用户只需从本地网络拉取文件。 如果您有多个使用同一框架的内部应用程序,那么内部 CDN 将是一个不错的选择。
  • 如果您的用户不太可能访问使用相同框架的其他应用程序,那么您将不会从 CDN 中获得任何好处(除非他们与您的服务器位于世界不同的地方),但也没有真正的缺点。
  • 如果要自动更新到库的最新版本(100 次中有 99 次是个坏主意),您可以使用 CDN 自动提供当前版本。
  • 如果您有带宽问题,使用 CDN 可以缓解这种情况,因为您的用户将从其他人那里下载文件。
  • 如果你的应用程序 js 会频繁更改,那么如果你将所有 js 捆绑在一起,你将强制重新下载所有框架库。 显然,有一些简单的方法可以解决这个问题,例如单独捆绑库。

对于外部应用程序,我会说使用 CDN 是正确的选择。