31

我有以下 javascript 重定向代码,然后是更多代码。

window.location.href = '/someurl';
alert('hello');
alert('hello again');

这会导致浏览器不一致。

在 Firefox 中,第一个警报在被重定向之前的瞬间可见。第二个警报根本不可见。

在 chrome 中,两个警报都会弹出,并且只有在两个警报都单击“确定”后才会发生重定向。

是否有一些关于重定向后代码会发生什么的概念可以解决这些差异?如果重定向是异步的,那么 chrome 在做什么?我想了解正在发生的事情,以便我可以确定在重定向深埋在某些回调和其他逻辑中的更复杂的情况下要做什么。

4

2 回答 2

29

面对即将到来的厄运,Javascript 会议将难以继续其使命。以这种方式编码被认为是不可预测的。……而且残忍。

于 2012-05-10T00:34:56.040 回答
18

浏览器会尝试执行代码,window.location.href = 'url'直到页面转到下一个网址,因此将执行的代码行数取决于浏览器的速度

于 2012-05-09T23:39:43.930 回答