在javascript中,什么是脚本阻塞问题?async和defer
1条回答 默认 最新
关注在 JavaScript 中,脚本阻塞问题是指当浏览器解析 HTML 文档时,如果遇到了
<script>标签,浏览器会停止解析 HTML 文档,然后下载并执行 JavaScript 代码,这个过程会阻塞 HTML 文档的解析和渲染,直到 JavaScript 代码执行完毕。为了解决脚本阻塞问题,HTML5 引入了两个属性:
async和defer。async属性表示异步加载 JavaScript 文件,即在下载 JavaScript 文件的同时,继续解析 HTML 文档,不会阻塞 HTML 文档的解析和渲染。但是,异步加载的 JavaScript 文件执行时,会阻塞 HTML 文档的解析和渲染。defer属性表示延迟加载 JavaScript 文件,即在下载 JavaScript 文件的同时,继续解析 HTML 文档,不会阻塞 HTML 文档的解析和渲染。但是,延迟加载的 JavaScript 文件会在 HTML 文档解析完毕后执行,不会阻塞 HTML 文档的解析和渲染。需要注意的是,
async和defer属性只对外部 JavaScript 文件有效,对内部 JavaScript 代码无效。本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报