在javascript中我们需要在运行代码之前等待窗口onload事件?
在不需要等待的情况下可以做些什么有用的事情?
答案 0 :(得分:3)
在javascript中我们需要在运行代码之前等待窗口onload事件?
在不需要等待的情况下可以做些什么有用的事情?
答案 1 :(得分:1)
来自相关的SO帖子:window.onload vs. body.onload vs. document.onready
window.onload等待所有资产完成下载,例如图像和脚本。
还有一个" DOM ready"允许更快访问dom的事件,因为它只能等到你可以通过API访问DOM。
答案 2 :(得分:1)
当您的代码需要访问/修改DOM和所有资产(图像,字体等)时,您需要在运行代码之前使用window onload事件。您也可以使用jQuery(或等效的)&(document).ready()
。它比window onload更早发布,因此用户会觉得网站加载速度更快。不同之处在于,在文档就绪时,只有DOM树已准备就绪,但资产可能尚未加载。在窗口加载时,所有内容都已加载。
在文档就绪事件之前,您可能仍会做一些事情。例如,如果您需要为用户创建某种唯一ID并设置cookie,则无需等待DOM。或者,如果你想基于cookie做一些事情(前提是它没有触及DOM)。或者您需要从API加载一些外部数据(但在尝试显示该数据之前需要等待DOM)。一般来说,任何不接触DOM的东西都应该没问题。
答案 3 :(得分:0)
如果你的代码需要执行其他文件(比如库,框架或你自己的文件暴露全局的东西),你应该总是等待浏览器完成下载所有内容。
所以在大多数情况下,你应该这样做。你可以找到不需要这种情况的边缘情况,但这种情况非常罕见,而且人类对时间的感知不会让你付出太多代价。