Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 脚本延迟不';似乎没有如预期的那样工作_Javascript - Fatal编程技术网

Javascript 脚本延迟不';似乎没有如预期的那样工作

Javascript 脚本延迟不';似乎没有如预期的那样工作,javascript,Javascript,我进行了以下测试,以查看defer属性是否延迟脚本块的执行。有两个脚本块。第一个带defer属性,第二个带out属性。如果我理解正确,则该属性会在完成所有html解析(包括其他scriptblock)后强制浏览器执行该块 但从控制台上看,我总是先看“from deferred”。为什么呢?defer是否对本地脚本块不起作用 <html> <body> ... <script type="text/javascript" defer> con

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

但从控制台上看,我总是先看“from deferred”。为什么呢?
defer
是否对本地
脚本
块不起作用

<html>
<body>
   ...

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

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

</body>
</html>

...
log('from deferred');
console.log('from regular');
仅适用于外部脚本:

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

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

而且

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

因为本地脚本是在页面完成解析之前执行的,
defer
将不适用<代码>延迟在
解析之后应用,但在之前应用