javascript - 延迟加载 vs Combine/Minify vs CDN Javascript (AngularJS)

标签 javascript jquery angularjs

使用CDN加载javascript文件的场景有哪些?以及您可能想要延迟加载哪些文件。或者哪些脚本最适合合并和缩小?

例如:

jquery + jquery plugins - should these be accessed via CDN or better to combine/minify them as one to be accessed by just one request

angularjs modules - is it better to lazy load modules as needed or just combine/minify them all at once upon deployment so all modules are actually available to the application at any time

让我知道你对此的想法

最佳答案

这个问题有点主观,但这是我的看法。

CDN 很棒,因为:

  1. 提供更好的性能,因为内容缓存在世界各地。这将意味着从广泛位置访问的网站延迟更低
  2. 脚本将被缓存,因此如果我访问一个使用 google cdn 上最新稳定 Angular 的站点,然后访问另一个使用相同的站点,则只执行一个请求。使用 cdns 的站点越多,脚本被缓存的可能性就越大,因此应尽可能使用它们
  3. 减少服务器的负载,从而降低成本。这对于获得大量流量的网站以及云托管网站尤其重要,因为您需要为使用的内容付费。我会说对于云来说,必须使用 cdns
  4. 由于浏览器对每个域同时请求的数量有限制,cdns 将增加对内容的并发请求数量

CDN 的问题:

  1. 需要为每个脚本发出一个单独的请求(除非缓存),这样会增加您网站的请求总量
  2. Cdn 可能会出现故障或出现性能问题,从而导致您的网站出现故障。如果使用 cdn,请确保在 cdn 失败时可以故障回复到本地版本,例如用于 Angular 检查 window.angular

合并很棒,因为:

  1. 它减少了请求的数量。这在移动设备上很重要,因为移动连接具有高延迟。这也很重要,因为浏览器只能为每个域执行固定数量的请求。这也将减少服务器的负载,因为要处理的请求较少

简而言之,尽可能将 cdns 用于 angular、jquery 等常见脚本,然后将组合和缩小用于您自己的自定义脚本。您的目标应该是只有一个请求用于您自己的脚本。

如果您有大量的 javascript,那么您应该考虑延迟加载您的脚本以减少您网站的初始加载时间。

关于javascript - 延迟加载 vs Combine/Minify vs CDN Javascript (AngularJS),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27814440/

相关文章:

javascript - 使用 Jquery 创建的幻灯片在旋转 4 次后停止工作

javascript - 在jquery中,如何检测段落是否包含一个链接且仅包含一个链接,没有其他内容

javascript - 如何在指令中调用函数

javascript - AngularJS 从 JSON 的缩略图获取模态图像

javascript - 通过下一张/上一张按钮切换幻灯片时如何更改状态单选按钮?

javascript - 如何连接两个 javascript 变量(动态)

Javascript:在输入的特定偏移位置附加字符串

javascript - 当一个回调不返回任何 Promise 时,Promise 链如何工作?

javascript - jQuery 触发类更改?

javascript - 如何连接两个变量作为我的 ng-src?