Chrome的窗口调整大小事件问题

时间:2010-07-13 00:30:13

标签: javascript jquery resize window google-chrome

我正在尝试在窗口调整大小时处理我网站上的内容,而且我遇到了Chrome无法弄清楚的问题。这是代码,非常简化:

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

当我点击恢复窗口(make较小)时,它工作正常(由于某种原因执行两次)。最大化窗口时,警报按此顺序排列:1,2,1,2,3,4,3,4;或者有时1,1,2,3,4,2,3,4。在IE中它似乎工作正常(执行三次)并且FF很好(仅执行一次)。我也尝试过jQuery相当于$(window).resize(...);结果相同。我知道javascript不是多线程的,但它几乎就像是这种情况。有没有人有任何想法?

1 个答案:

答案 0 :(得分:3)

并不是单线程与多线程,alert()调用是锁定执行线程的少数事情之一,因此警报启动时,其他事情是在后台排队。

如果您没有使用警报而是使用console.log()或写入页面进行调试,那么与alert()调用相比,您将获得更加一致的行为......因为它们会直接干扰和改变它们,所以它们确实不适合判断线程或竞争条件。