为了账号安全,请及时绑定邮箱和手机立即绑定

window.onload和setTimeout的执行顺序问题.

window.onload和setTimeout的执行顺序问题.

扬帆大鱼 2019-03-05 16:27:26
 var key    window.onload=function () {        key=1        console.log('load'+1111)    }    setTimeout(function(){        console.log('setTimeout'+key)    },0)这段代码在mac的chrome中输出的结果是在window的chrome中输出的结果是输出的结果不一样是什么原因导致的??
查看完整描述

4 回答

?
汪汪一只猫

TA贡献1898条经验 获得超8个赞

你这样写太不稳定了


//这只是一个声明的事件绑定而已 

window.onload=function () {

//这是一段立即执行的JS

setTimeout(function(){

JS承上启下的执行顺序,onload事件不一定执行,就执行setTimeout也很正常啊;


看浏览器内核反应速度!?不确定性因素太多了!


查看完整回答
反对 回复 2019-03-18
?
回首忆惘然

TA贡献1847条经验 获得超11个赞

写一个同步方法就可以了。
就是先让哪个执行,再让哪个执行。

查看完整回答
反对 回复 2019-03-18
?
万千封印

TA贡献1891条经验 获得超3个赞

setTimeout 的毫秒数设置为 0 也不会立即执行,浏览器会有最小延迟,大概 5s 10s 这样。如果页面加载的延迟比这个延迟大就会先执行 setTimeout


查看完整回答
反对 回复 2019-03-18
  • 4 回答
  • 0 关注
  • 1545 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号