Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/459.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 下载所有脚本标记后是否触发DOMContentLoaded?_Javascript_Html_Events_Dom - Fatal编程技术网

Javascript 下载所有脚本标记后是否触发DOMContentLoaded?

Javascript 下载所有脚本标记后是否触发DOMContentLoaded?,javascript,html,events,dom,Javascript,Html,Events,Dom,考虑以下场景: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <script src="js/heavy_js_file.js" defer></script> <script s

考虑以下场景:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>

<body>
    <script src="js/heavy_js_file.js" defer></script>
    <script src="js/heavy_js_file2.js" defer></script>
    <script>
    document.addEventListener("DOMContentLoaded", function(event) {
        console.log("DOM fully loaded and parsed");
    });
    </script>
</body>

</html>

文件
document.addEventListener(“DOMContentLoaded”),函数(事件){
log(“DOM已完全加载并解析”);
});
下载并执行所有外部延迟脚本后,
DOMContentLoaded
是否会触发


附言:解析HTMLDOM后,会触发
DOMContentLoaded
。我不确定解析HTMLDOM是否意味着下载和执行js文件

是的,只要脚本不是异步的,解析脚本后将触发DOMContentLoaded


编辑我不知道如何将问题标记为重复问题,但我很确定答案已经在这里了:

情况并非总是如此。如果一个
async
脚本被缓存或快速获取,它将在执行时暂停
HTML
解析,并且
DOMContentLoaded
将在脚本解析后激发。因此,这要视情况而定。