LinDaiDai/niubility-coding-js

☁️第4期第4题:JS三种加载方式的区别

Opened this issue · 2 comments

JS三种加载方式的区别

(答案参考来源:前端性能优化-页面加载渲染优化)

正常模式

这种情况下 JS 会阻塞浏览器,浏览器必须等待 index.js 加载和执行完毕才能去做其它事情。

<script src="index.js"></script>

async(异步) 模式

async 模式下,JS 不会阻塞浏览器做任何其它的事情。它的加载是异步的,当它加载结束,JS 脚本会立即执行。

<script async src="index.js"></script>

defer(延缓) 模式

defer 模式下,JS 的加载是异步的,执行是被推迟的。等整个文档解析完成、DOMContentLoaded 事件即将被触发时,被标记了 defer 的 JS 文件才会开始依次执行。

<script defer src="index.js"></script>

从应用的角度来说,一般当我们的脚本与 DOM 元素和其它脚本之间的依赖关系不强时,我们会选用 async;当脚本依赖于 DOM 元素和其它脚本的执行结果时,我们会选用 defer。

prefetch preload 还没介绍哦

我补个相关介绍:https://www.w3.org/TR/resource-hints/

prefetch preload 还没介绍哦

我补个相关介绍:https://www.w3.org/TR/resource-hints/

棒!