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

javascript中的事件是串行分配的么?
本帖最后由 shendaowu 于 2013-09-17 08:21:08 编辑
就是事件分配器分配了一个事件之后,如果处理这个事件的函数不返回的话,会再次调用另外一个事件处理函数么?
这个应该是可以通过代码测试出来,不过好像很麻烦也不能保证完全正确,更何况有好几个浏览器要测试。谁知道么?

------解决方案--------------------
JS是单线程的,事件处理函数和UI update共用同一个线程,如果在处理事件的函数中不返回(也只有通过死循环或者发起一个同步xmlHttpRequest才能做到这点),UI将得不到更新。停留的时间一长,给用户的感觉就是浏览器不响应,进入假死状态。

所以,js的事件,可以说是串行的,因为同一时刻不可能在运行两个代码片段,也就不可能同时dispatch了两个event。