📌  相关文章
📜  如何在 HTML5 中异步执行脚本?

📅  最后修改于: 2021-11-07 08:47:39             🧑  作者: Mango

在本文中,我们将学习如何在网页上异步执行脚本。这可用于加载内容很重要的情况,因为繁重的脚本会导致页面等待加载,从而使页面看起来不完整。异步加载将解决阻塞 DOM 渲染的问题。

脚本标签用于在网页内部实现外部和外部脚本。为了使脚本异步运行,我们有两个属性,第一个是async ,第二个是defer 。这些是布尔类型属性,并且都异步加载脚本而不会阻止 DOM 渲染。

两者之间的主要区别是async属性在加载后立即异步执行脚本,而不等待 DOM 完成渲染,而 defer 属性在 DOM 内容完全加载时执行脚本。旧版浏览器不支持async属性,但旧版浏览器支持defer 。

当同时使用asyncdefer 时,浏览器会忽略defer 属性。但是,如果浏览器很旧并且不支持异步,则 defer属性将起作用。

示例 1:在这个示例中,我们有四个元素,第一个是

元素,它是脚本之前的内容,第二个是包含要加载的脚本的        

Content after script

       


HTML


Content before script

            

Content after script

    


输出:

  • 不使用 async 属性,第二个

    元素会在一段时间后加载:

  • 使用 async 属性,脚本异步加载,不会阻塞 DOM 渲染

示例 2:此示例与前一个示例相同,但我们使用的是defer而不是async 。在这种情况下,脚本会在所有 DOM 内容呈现后加载。

HTML



Content before script

            

Content after script

    

输出:

  • 不使用 defer 属性,第二个

    元素会在一段时间后加载:

  • 使用 defer 属性,脚本在 DOM 渲染完成后加载: