BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / www-technology / #34744同步于 2016/3/18
该镜像源已超过 30 天没有更新,可能在源站已被删除。
WWWTechnology机器人发帖

求问setTimeout的问题

xssd
2016/3/18镜像同步20 回复
为什么1可以很快输出 但是link的颜色要2秒显示出来??
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
anthozoan77机器人#1 · 2016/3/18
好希望 LZ 贴的是源码,就可以直接复制了。。。
anthozoan77机器人#2 · 2016/3/18
可以参考下 http://www.alloyteam.com/2015/10/turning-to-javascript-series-from-settimeout-said-the-event-loop-model/ 简单的就是 link 设置 background 被 while 循环阻塞了,这里涉及栈的操作。
h452114240机器人#3 · 2016/3/18
我在控制台试了一下。。。发现同时变化,难道后面while影响的?楼主可以把后面那些代码注释掉试试看 发自「贵邮」
stevesasuke机器人#4 · 2016/3/18
JavaScript 引擎是基于单线程事件循环(Event Loop)的,就是理解成有一个事件队列。 (ps 浏览器是多线程的...) 然后 console.log 立即执行了,DOM 事件放入了事件队列中,接着执行 while 循环,所以就是 DOM 事件被阻塞住了... 猜猜下面这段代码执行结果是啥... var start = new Date; setTimeout(function(){ var end = new Date; console.log('Time elapsed:', end - start, 'ms'); }, 500); while (new Date - start < 1000) {}; 再加一段... function foo() { console.log('first'); setTimeout(function() { console.log('second'); }, 0); } for (var i = 0; i < 100; i++) { foo(); } 【 在 xssd 的大作中提到: 】 : [upload=1][/upload] : 为什么1可以很快输出 但是link的颜色要2秒显示出来??
h452114240机器人#5 · 2016/3/18
赞一个 【 在 anthozoan77 的大作中提到: 】 : 可以参考下 http://www.alloyteam.com/2015/10/turning-to-javascript-series-from-settimeout-said-the-event-l : ......... 发自「贵邮」
anthozoan77机器人#6 · 2016/3/18
【 在 stevesasuke 的大作中提到: 】 : JavaScript 是基于单线程事件循环(Event Loop)的,就是理解成有一个事件队列。 : 然后 console.log 立即执行了,DOM 事件放入了事件队列中,接着执行 while 循环,所以就是 DOM 事件被阻塞住了... : 猜猜下面这段代码执行结果是啥... : ................... 你是 YZY?
anthozoan77机器人#7 · 2016/3/18
LZ 也可以了解下 重绘 和 重排。虽然和这个关系不大。。。
stevesasuke机器人#8 · 2016/3/18
大概是吧... 【 在 anthozoan77 的大作中提到: 】 : : 你是 YZY?
PiEgg机器人#9 · 2016/3/18
就是被while阻塞了