为什么汉游天下网页直接玩进不去

汉游天下掼蛋源码里原文中有这麼一段话描述的有点抽象:


JavaScript引擎在执行onmousedown时,由于没有多线程的同步执行不可能同时去处理刚创建元素的focus 和select方法,由于这两个方法都不茬队列中在完成onmousedown后,JavaScript 引擎已经丢弃了这两个任务正如第一种情况。而在第二种情况中由于setTimeout可以把任务从某个队列中跳脱成为新队列,因而能够得到期望的结果

我看到这里就觉得非常不对劲了。因为按照这种任务会被丢弃的说法那么只要在事件触发的函数中再触发其他的事件都会被丢弃,浏览器是绝对不会这么做的于是我编写了测试代码:

而在转载的文中为了引人深思,又提出了第三个例子:


在此你可以看看例子 3,它的任务是实时更新输入的文本现在请试试,你会发现预览区域总是落后一拍比如你输 a, 预览区并没有出现 a, 在紧接输入b时,a才不慌不忙地出现

原文和转载的文章中都对setTimeout(fn,0)进行了思考,但原文指出的问题本质漏洞百出所以才出了这篇文章,我们的正攵现在开始。

}

我要回帖

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信