Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/85.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 window.addEventListener(“加载”和“函数”)是否比页面底部的“脚本”快?_Javascript_Html_Addeventlistener - Fatal编程技术网

Javascript window.addEventListener(“加载”和“函数”)是否比页面底部的“脚本”快?

Javascript window.addEventListener(“加载”和“函数”)是否比页面底部的“脚本”快?,javascript,html,addeventlistener,Javascript,Html,Addeventlistener,我有一个简单的Javascript函数,可以放在HTML文档中的任何位置。因此我将其放在结尾的正下方,例如: <html> <body> Some text. <script> document.getElementsByTagName('body')[0].innerHTML='hello'; </script> </body> </html> 一些文本。 document.getElementsByTagName('

我有一个简单的Javascript函数,可以放在HTML文档中的任何位置。因此我将其放在结尾的正下方,例如:

<html>
<body>
Some text.
<script>
document.getElementsByTagName('body')[0].innerHTML='hello';
</script>
</body>
</html>

一些文本。
document.getElementsByTagName('body')[0].innerHTML='hello';
我的问题是-通过addEventListener(“加载”)加载这个脚本(从页面加载速度的角度)有意义吗函数?也就是说,如果我使用下面的代码-哪一个更好?我知道当Javascript位于页面底部时,它不会“阻止”页面呈现,因此使用addEventListener可能只会降低执行速度

<html>
<body>
Some text.
<script>
window.addEventListener("load",function()
{document.getElementsByTagName('body')[0].innerHTML='hello';},
false);
</script>
</body>
</html>

一些文本。
addEventListener(“加载”,函数()
{document.getElementsByTagName('body')[0].innerHTML='hello';},
假);

脚本通常不应该像那样直接放在HTML中,因为它们会阻止进一步的HTML解析,直到执行为止。虽然只有一个脚本不是问题,但是如果有两个、三个或更多脚本,其中一些脚本可能需要几毫秒才能解析,会怎么样

尽管如此,假设阻塞不是问题,从用户体验的角度来看,这两者之间并没有真正的区别


脚本是关于如何与内容交互的信息,但实际上不是内容本身,它属于
IMO。如果您不喜欢将所有内容都包装在
加载
侦听器中,可以使用
延迟
属性在解析完整个HTML后自动运行脚本:
脚本通常不应该像那样直接放在HTML中,因为它们会阻止进一步的HTML解析,直到它们被执行为止。虽然只有一个脚本不是问题,但是如果有两个、三个或更多个脚本,其中一些脚本可能需要几毫秒才能解析呢

尽管如此,假设阻塞不是问题,从用户体验的角度来看,这两者之间并没有真正的区别


脚本是关于如何与内容交互的信息,但实际上不是内容本身,属于
IMO。如果您不喜欢将所有内容包装在
load
侦听器中,您可以使用
defer
属性在解析完整个HTML后自动运行脚本:

它们之间没有实际的区别,除了在加载所有页面工件之前不会触发“加载”这一固有事实。它们之间没有实际的区别,除了在加载所有页面工件之前不会触发“加载”这一固有事实。