Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否只有firefox在阻塞同步XMLHttpRequest上切换事件?未来是什么?_Javascript_Firefox_Standards - Fatal编程技术网

Javascript 是否只有firefox在阻塞同步XMLHttpRequest上切换事件?未来是什么?

Javascript 是否只有firefox在阻塞同步XMLHttpRequest上切换事件?未来是什么?,javascript,firefox,standards,Javascript,Firefox,Standards,我期望下面的代码只输出0或2,但在Firefox24中,它有时输出1。这是否符合任何(未来)标准?我认为Firefox会在超时事件被同步调用阻止时切换事件。我无法在Chrome 30.0.1599.69 m中复制它(我在打开网站时在控制台中输入了此代码) 有人知道演示此问题的较短代码吗?y.send()是“同步的”将使事件循环旋转,但旋转时也应如此 因此,这可能是XHR实现/事件调度器中的一个bug,也可能是控制台中的一个“bug”(实际上,多个文档之间有些异步) 无论如何,避免同步XHR的另一

我期望下面的代码只输出0或2,但在Firefox24中,它有时输出1。这是否符合任何(未来)标准?我认为Firefox会在超时事件被同步调用阻止时切换事件。我无法在Chrome 30.0.1599.69 m中复制它(我在打开网站时在控制台中输入了此代码)

有人知道演示此问题的较短代码吗?

y.send()
是“同步的”将使事件循环旋转,但旋转时也应如此

因此,这可能是XHR实现/事件调度器中的一个bug,也可能是
控制台中的一个“bug”(实际上,多个文档之间有些异步)


无论如何,避免同步XHR的另一个原因是:有趣的重入行为。如果你能复制这个(我不能),听起来你应该这样做。

奇怪的是,你不能复制它。我复制了上面的代码,在Firefox24的OpenStackOverflow页面下打开firebug控制台,粘贴代码,每次按Run1后都返回。实际上我现在可以复制了。我之前尝试过另一个领域,并使用了Nightly,它似乎有不同的时间或其他什么。不过,这似乎仍然是一个bug。或者至少是“未定义的行为”,所以我的建议是归档一个bug。
var z=0;
var x = new XMLHttpRequest();
x.onload=function(){
 console.log(z);
};
x.open('GET','.',true);//asynchronous call
x.send();
setTimeout(function(){
 var i=1e7;
 while(i--);//some time to waste while the asynchronous call finishes.
 var y = new XMLHttpRequest();
 y.open('GET','.',false);//synchronous call
 z=1;
 y.send();
 z=2;
},10);