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

📅  最后修改于: 2023-12-03 15:08:38.446000             🧑  作者: Mango

如何在 HTML5 中异步执行脚本?

什么是异步执行脚本?

在传统的 HTML 静态页面中,由于 HTML 和 JavaScript 是按照顺序依次加载的,因此在加载较大的 JavaScript 文件时,会阻塞 HTML 页面的加载。这就会导致用户在等待页面加载时无法进行任何操作。

而异步加载 JavaScript 脚本,可以让浏览器在加载 JavaScript 的同时继续加载 HTML 页面和其他资源。这样可以显著提高页面加载速度,并让用户更快地访问页面。

如何在 HTML5 中异步执行脚本?

以前,我们需要使用 deferasync 属性,让浏览器异步执行脚本。例如:

<script defer src="https://example.com/example.js"></script>
<script async src="https://example.com/example.js"></script>

使用 defer 属性加载的脚本将在文档解析完毕后执行,而使用 async 属性加载的脚本将在下载完毕后立即执行。但是,这两个属性在不同的浏览器中支持情况不同,并且它们不能保证脚本的执行顺序。

在 HTML5 中,我们可以使用 JavaScript 的 async 函数和 await 表达式来异步执行 JavaScript,同时又能保证 JavaScript 的执行顺序。例如:

<script>
  async function loadScript(url) {
    // 创建一个新的 script 元素
    const script = document.createElement('script');
    // 设置 script 元素的 src 属性
    script.src = url;
    // 使用 await 表达式,等待 script 元素加载完毕
    await script.load();
    // 将 script 元素添加到当前文档中
    document.head.appendChild(script);
  }
  loadScript('https://example.com/example.js');
</script>

以上代码使用 JavaScript 的 asyncawait,创建了一个异步函数 loadScript,用于加载 JavaScript 脚本。在函数中,首先创建一个新的 script 元素,并设置其 src 属性为加载的 JavaScript 脚本的 URL。然后使用 await 表达式,等待 script 元素中的 JavaScript 被完全加载。最后将 script 元素添加到文档头部,以便浏览器执行其中的 JavaScript。

总之,使用 JavaScript 的 asyncawait 可以让我们更方便地异步加载 JavaScript 脚本,并保证脚本按照正确的顺序执行。