脚本延迟似乎无法按预期工作

Ang*_*ker 0 javascript

我进行以下测试,以查看该defer属性是否推迟脚本块的执行。有2个脚本块。第一个带有defer属性,第二个带有out。如果我正确理解,则该属性会强制浏览器在所有html解析完成后(包括其他script块)。

但是从控制台来看,我始终是“从推迟开始”的。这是为什么?defer在本script地块上不起作用?

<html>
<body>
   ...

  <script type="text/javascript" defer>
    console.log('from deferred');
  </script>

  <script type="text/javascript">
    console.log('from regular');
  </script>

</body>
</html>
Run Code Online (Sandbox Code Playgroud)

Obs*_*Age 5

defer仅适用于外部脚本:

如果该src属性不存在(例如,对于内联脚本),则不得使用此属性,在这种情况下,它将无效。

要对动态插入的脚本实现类似的效果,请async=false改用。具有defer属性的脚本将按照它们在文档中出现的顺序执行。

也,

在浏览器继续解析页面之前,不带asyncdefer属性的脚本以及内联脚本将立即被获取并执行。

由于本地脚本是在页面解析完成之前执行的,因此defer将不适用。defer得到应用分析,但之前 DomContentLoaded