2015-10-07 14 views
0

我是新来的JS,我不知道什么时候完成的功能执行。onload与脚本在body结尾的区别?

实例A:

<html> 
    <head> 
    <title>A</title> 
    <script src="myScript.js"></script> 
    </head> 
    <body onload="myFunction()"> 
    [Content here...] 
    </body> 
</html> 

例B:

<html> 
    <head> 
    <title>B</title> 
    <script src="myScript.js"></script> 
    </head> 
    <body> 
    [Content here...] 
    <script> 
     myFunction(); 
    </script> 
    </body> 
</html> 

从我到目前为止当解析器达到其执行功能来读取。这不会让例子A和B一样吗?当在B中调用myFunction()时,屏幕上是否显示页面的所有内容(例如带文本的表格)?

+0

onload事件将触发一次整个网页,包括图像,音频/视频被加载,而身体标记结束之前,就像DOMContentLoaded事件.. – Rayon

回答

2

在主体末端添加<script>本质上会在处理完<script>之前的项目之后运行它(您可以将其视为在完成body的DOM时运行)。尽管onload不仅等待DOM,而且还为所有内容完成加载,如图像。

+0

如果我有一个表的文本内容很多,需要一些时间来加载/渲染,所有它会在脚本执行前可见吗? – John

0

onLoad将等待直到整个文档已完成加载图像等。在关闭body标签之前放置脚本的好处是,用户可以更快地看到页面呈现,如果您的头脑中有大量脚本需要花费几秒钟才能下载,用户会看到一个空白页面,直到它加载脚本并继续下载文档的其余部分。我会用这两个,onLoad以确保在底部的脚本时,一切都已经加载的脚本被执行,从而使用户拥有的感觉是,页面加载速度快:)