当前位置: 首页 > Web前端 > HTML

JS会阻塞页面的加载吗?

时间:2023-03-28 00:34:03 HTML

JS阻塞了DOM解析,也阻塞了页面。这就是JS文件放在底部的原因。那么为什么它会阻止DOM解析呢?·由于JS可以操作DOM,·如果一边渲染页面一边修改这些元素属性(即js线程和UI线程同时运行),渲染线程前后获取的元素数据可能不一致.·为了防止意外的渲染结果,浏览器将GUI渲染线程和js引擎设置为互斥。·当JS引擎执行时,GUI线程会被挂起,GUI更新会保存在一个队列中,等引擎线程空闲时立即执行。·当浏览器在执行JS程序时,GUI渲染线程会被保存在一个队列中,直到JS程序执行完毕才会立即执行。如果JS的执行时间过长,页面的渲染就会不连贯,造成页面渲染加载阻塞的感觉。·如果JS文件中没有DOM相关的代码,可以设置JS脚本异步加载,使用async或者defer来标记代码。