日期:2014-05-16  浏览次数:20398 次

问一个关于JS执行顺序的问题

如果在HEAD头部里面的JS,对下面BODY的元素进行操作,例如添加删除一些元素等。。
1、这样的操作是不可能的吗?(因为在未执行完HEAD的JS,BODY还没出来?)
2、ONLOAD是不是一定在页面元素出来以后再会触发?(如果是这样,那能不能说ONLOAD里面的JS不会影响到页面的加载速度?也就是说一般会影响到页面显示到用户的速度,就可以用ONLOAD来触发?)

希望有前辈指导一下,越具体越好,谢谢啦

------解决方案--------------------
onload是在页面元素全部加载完成后才执行;
js代码如果跟页面标签有关,最好包括在onload()里面,以防页面元素没有载入
------解决方案--------------------
1.是的,html顺序加载,head里面的代码会在body之前执行
2.是在页面元素加载完后触发,只是不影响html的显示罢了,至于是否影响页面加载速度,这个要看你页面的设计方式了,界面是纯html产生当然不影响,但其实一些web引用程序界面是由js代码生成的。
还有就是你说的问题其实不存在区别,若你的js代码并不会耗费很多时间,那放哪里都差不多;若会耗费很多时间,就算放load事件里不影响显示,但js代码的持续运行也会让页面无法操作(卡住),所以复杂的计算请放后台运行去。

------解决方案--------------------
学习学习,,

总这你要记住
1.js从上往下的执行
2.不要操作还未生成js对象.(如你根据后台返回的数据在生成的的元素)
3.关于加载速度的问题,你按正常的顺序写,逻辑合理,就先不要考虑性能问题,差不了多少..