使用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 很棒,因为:
- 提供更好的性能,因为内容缓存在世界各地。这将意味着从广泛位置访问的网站延迟更低
- 脚本将被缓存,因此如果我访问一个使用 google cdn 上最新稳定 Angular 的站点,然后访问另一个使用相同的站点,则只执行一个请求。使用 cdns 的站点越多,脚本被缓存的可能性就越大,因此应尽可能使用它们
- 减少服务器的负载,从而降低成本。这对于获得大量流量的网站以及云托管网站尤其重要,因为您需要为使用的内容付费。我会说对于云来说,必须使用 cdns
- 由于浏览器对每个域同时请求的数量有限制,cdns 将增加对内容的并发请求数量
CDN 的问题:
- 需要为每个脚本发出一个单独的请求(除非缓存),这样会增加您网站的请求总量
- Cdn 可能会出现故障或出现性能问题,从而导致您的网站出现故障。如果使用 cdn,请确保在 cdn 失败时可以故障回复到本地版本,例如用于 Angular 检查
window.angular
合并很棒,因为:
- 它减少了请求的数量。这在移动设备上很重要,因为移动连接具有高延迟。这也很重要,因为浏览器只能为每个域执行固定数量的请求。这也将减少服务器的负载,因为要处理的请求较少
简而言之,尽可能将 cdns 用于 angular、jquery 等常见脚本,然后将组合和缩小用于您自己的自定义脚本。您的目标应该是只有一个请求用于您自己的脚本。
如果您有大量的 javascript,那么您应该考虑延迟加载您的脚本以减少您网站的初始加载时间。
关于javascript - 延迟加载 vs Combine/Minify vs CDN Javascript (AngularJS),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27814440/