想请问一下哪些内容应该放在window.onload里面,我看有好多都是把全部的js代码都放在里面,这样在里面写函数那不是会创建很多闭包,而闭包会影响性能。
还有就是如果我的script标签放在body结束标签的前面,这样还需要window.onload吗。
想请问一下哪些内容应该放在window.onload里面,我看有好多都是把全部的js代码都放在里面,这样在里面写函数那不是会创建很多闭包,而闭包会影响性能。
还有就是如果我的script标签放在body结束标签的前面,这样还需要window.onload吗。
关于性能:
我觉得因为这样才出现了模块化,CommonJS同步加载(nodejs),AMD依赖关系前置,CMD按需加载,这些都是管理js代码的方法,减少影响的有效途径.
关于</body>前的<script></script>
个人见解:
window.onload事件明确规定了事件在页面上所有的DOM、样式表、脚本、图片和flash都已经加载完成了之后.
而当我们把script标签放在body结束标签前的时候,我们并不能和window.onload事件一样保证加载的完成度(图片),仅仅表示DOM解析完毕,并不代表着资源完美呈现.
关于详细的方面可以自己去搜索下资料,深入了解下window.onload和DOMContentLoaded事件还有浏览器解析步骤
首先要区别window.onload
和domready
,window.onload
是页面所有资源加载完成后才会执行。domready
仅仅是dom
元素加载完成后执行。
所以一般来说,window.onload
会在domready
后面执行,因为页面一般避免不了图片和其他资源下载。
个人一般直接把js
写在body
最下面,因为那个时候已经是dom
加载完成了,所以本人一般不用window.onload
和domready
。
如果要用的话,建议使用domeady
或则jquery
的$(function(){ ... })
。
10 回答11.3k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
window.onload是在在文档装载完成后会触发。此时,在文档中的所有对象都在DOM中,所有图片,脚本,链接以及子框都完成了装载。
如果script标签放在body结束位置时,这时执行的文档dom已经装载完(不包括所有图片,脚本,链接),可以不用写window.onload。