javascript - window.addEventListener ("load",function() 是否比放置在页面底部的 <script> 更快?

标签 javascript html addeventlistener

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

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

我的问题是 - 通过 addEventListener("load") 函数加载此脚本是否有意义(从页面加载速度的 Angular 来看)? IE。如果我使用下面的代码 - 哪个会是首选?我知道当 Javascript 位于页面底部时,它无论如何都不会“阻止”页面渲染,因此使用 addEventListener 可能只会减慢执行速度?

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

最佳答案

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

不过,假设阻塞不是问题,从用户体验的 Angular 来看,方式或其他方式没有真正的区别。

脚本是有关如何与内容交互的信息,但实际上并不是内容本身,属于 <head>国际海事组织。如果您不喜欢将所有内容都包装在 load 中监听器,您可以使用defer解析整个 HTML 后自动运行脚本的属性:<script src="..." defer> .

关于javascript - window.addEventListener ("load",function() 是否比放置在页面底部的 &lt;script&gt; 更快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49547748/

相关文章:

Javascript addEventListener 异常

javascript - 提交按钮在模态弹出窗口中不起作用,但单击按钮有效

javascript - 当我调用 .addEventListener(click, myFunction(i), false);它在调用时而不是在单击时运行我的函数

javascript - 为什么以多种不同方式使用此代码?

javascript - Reactjs 到 firebase 数据库 : Trouble adding multiple children to firebase db

JavaScript : Dynamic Dropdown for Another Hidden Dropdown and Different Option

html - 编号的圆形背景

Javascript 在文本中查找单词并动态改变颜色

javascript - 无法在 Chrome 应用程序中加载 AWS SDK

javascript - 即使返回 false 页面也会刷新