window.addEventListener(“load”,function()比放在页面底部的<script>快吗?

时间:2018-03-29 03:52:54

标签: javascript html addeventlistener

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

&#xA;&#xA;
 &lt; html&gt;&#xA;&lt; body&gt;&#xA;一些文字。& #xA;&LT;脚本&GT;&#XA; document.getElementsByTagName( '主体')[0] .innerHTML = '你好';&#XA;&LT; /脚本&GT;&#XA;&LT; / BODY&GT;&#XA ;&lt; / html&gt;&#xA;  
&#xA;&#xA;

我的问题是 - 是否有意义(从页面加载速度的角度来看)加载此脚本通过addEventListener(“load”)函数代替? IE浏览器。如果我在下面使用此代码 - 这将是首选?我知道当Javascript位于页面底部时,它不会“阻止”页面渲染,所以使用addEventListener可能只会减慢执行速度吗?

&#xA;&#xA;
 &lt; html&gt;&#xA;&lt; body&gt;&#xA;一些文字。&#xA;&lt; script&gt;&#xA; window.addEventListener(“load”,function()&#xA; { document.getElementsByTagName( '主体')[0] .innerHTML = '你好';}&#XA;假);&#XA;&LT; /脚本&GT;&#XA;&LT; / BODY&GT;&#XA;&LT ; / HTML&GT;&#XA;  
&#XA;

1 个答案:

答案 0 :(得分:2)

脚本通常不应该直接放在HTML中,因为它们阻止进一步HTML解析,直到它们被执行。虽然如果你只有一个脚本不成问题,如果你有两个,三个或更多,以及其中一些可能需要多于几个ms来解析呢?

尽管如此,假设阻塞不是一个问题,从用户体验的角度来看,在方式或其他方面没有真正的区别。

脚本是有关如何与内容进行交互的信息,但实际上并不是自己的内容,属于<head> IMO。如果您不想在load侦听器中包装所有内容,则可以使用defer属性在解析整个HTML后自动运行脚本:<script src="..." defer>