2010-07-13 103 views
0

我试图在窗口大小调整后处理我网站上的内容,并且遇到Chrome无法解决的问题。下面是代码,非常简化:Chrome浏览器调整窗口大小事件问题

<script language="javascript" type="text/javascript"> 
    window.onresize = function() 
     { 
      alert(1); 
      alert(2); 
      alert(3); 
      alert(4); 
     }; 
    }); 
</script> 

当我点击恢复窗口(做小),它工作正常(因为某些原因两次执行)。当窗口最大化时,警报顺序如下:1,2,1,2,3,4,3,4;或者有时是1,1,2,3,4,2,3,4。在IE中它似乎工作正常(执行三次)并且FF很好(只执行一次)。我也试过这与$(window).resize(...)的jQuery等价物;结果相同。我知道JavaScript不是多线程的,但它几乎看起来像是这种情况。有没有人有任何想法?

回答

3

VS多线程,一个alert()调用的是锁死的执行线程的几件事情之一,所以警报达这与其说是单一的,其他的事情正在排队的背景。

如果您没有使用警报,而是做了console.log()或写进你调试的页面,你会得到更加一致的行为比alert()电话......这是真的判断线程还是坏因为它们直接干扰和改变它们。