我有以下javascript重定向代码,后跟更多代码。
window.location.href = '/someurl';
alert('hello');
alert('hello again');
这会导致浏览器不一致。
在firefox中,第一个警报在重定向之前可以在瞬间显示。根本看不到第二个警报。
在Chrome中,两个警报都会弹出,只有在两个警报都单击“确定”后才会重定向。
是否有一些关于重定向后代码会发生什么变化的概念可以解决这些差异?如果重定向是异步的,那么chrome在做什么?我想了解发生了什么,以便我可以确定在更复杂的情况下要做什么,其中重定向深埋在一些回调和其他逻辑中。
答案 0 :(得分:23)
面对即将到来的厄运,Javascript会话将难以继续执行任务。以这种方式编码被认为是不可预测的。 ......而且很残忍。
答案 1 :(得分:12)
浏览器将尝试在window.location.href = 'url'
之后执行代码,直到页面转到下一个网址,因此将执行的代码行数取决于浏览器的速度