美文网首页
script标签中的defer和async

script标签中的defer和async

作者: small_zeo | 来源:发表于2021-03-14 12:22 被阅读0次

    script标签用于加载脚本与执行脚本,在前端开发中可以说是非常重要的标签了。

    直接使用script脚本的话,html会按照顺序来加载并执行脚本,在脚本加载&执行的过程中,会阻塞后续的DOM渲染。

    如果script标签设置了该属性,则浏览器会异步的下载该文件并且不会影响到后续DOM的渲染;

    如果有多个设置了defer的script标签存在,则会按照顺序执行所有的script;

    defer脚本会在文档渲染完毕后,DOMContentLoaded事件调用前执行。

    推荐的应用场景

    defer

    如果你的脚本代码依赖于页面中的DOM元素(文档是否渲染完毕),或者被其他脚本文件依赖。

    image

    async

    如果你的脚本并不关心页面中的DOM元素(文档是否渲染完毕),并且也不会产生其他脚本需要的数据。
    async的设置,会使得script脚本异步的加载并在允许的情况下执行

    async的执行,并不会按着script在页面中的顺序来执行,而是谁先加载完谁执行。

    DOMContentLoaded事件的触发并不受async脚本加载的影响,在脚本加载完之前,就已经触发了DOMContentLoaded。

    image

    相关文章

      网友评论

          本文标题:script标签中的defer和async

          本文链接:https://www.haomeiwen.com/subject/yxsqcltx.html