当前位置:首页 > 编程笔记 > 正文
已解决

渲染过程JS 文件的处理方式

来自网友在路上 152852提问 提问时间:2023-10-22 05:41:26阅读次数: 52

最佳答案 问答题库528位专家为你答疑解惑

渲染过程中遇到 JS 文件怎么处理?(浏览器解析过程)

JavaScript 的加载、解析与执行会阻塞文档的解析,也就是说,在构建 DOM 时,HTML 解析器若遇到了 JavaScript,那么它会暂停文档的解析,将控制权移交给 JavaScript 引擎,等 JavaScript 引擎运行完毕,浏览器再从中断的地方恢复继续解析文档。

也就是说,如果你想首屏渲染的越快,就越不应该在首屏就加载 JS 文件,这也是都建议将 script 标签放在 body 标签底部的原因。当然在当下,并不是说 script 标签必须放在底部,因为你可以给 script 标签添加 defer 或者 async 属性。

async 和 defer 的作用是什么?有什么区别?(浏览器解析过程)

(1)脚本没有 defer 或 async,浏览器会立即加载并执行指定的脚本,也就是说不等待后续载入的文档元素,读到就加载并执行。

(2)defer 属性表示延迟执行引入的 JavaScript,即这段 JavaScript 加载时 HTML 并未停止解析,这两个过程是并行的。当整个 document 解析完毕后再执行脚本文件,在 DOMContentLoaded 事件触发之前完成。多个脚本按顺序执行。

(3)async 属性表示异步执行引入的 JavaScript,与 defer 的区别在于,如果已经加载好,就会开始执行,也就是说它的执行仍然会阻塞文档的解析,只是它的加载过程不会阻塞。多个脚本的执行顺序无法保证。

《defer 和 async 的区别》

查看全文

99%的人还看了

猜你感兴趣

版权申明

本文"渲染过程JS 文件的处理方式":http://eshow365.cn/6-21368-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!