为什么更改"window.location.href"不能作为返回?



我本以为,在下面的函数中,第一个window.location.href作为返回,被重定向到example.com,其余的代码将被忽略。

() => {
window.location.href = 'http://example.com/'; // Does nothing
console.log('does it log?'); // Yes, it logs
window.location.href = 'http://example.org'; // Redirects here
}

导航到另一个页面听起来像是一个决定性的停止:放弃DOM、放弃XHR查询、离开网站等等。为什么其余的仍然执行?

简短的回答-这取决于浏览器重定向到另一个页面的速度,因此是不可预测的。

这里发生的事情是浏览器将尝试在之后执行代码

window.location.href = 'http://example.com/';

在重定向发生并且页面将转到下一个网址之前,其余的代码将按照正常运行的方式执行,因此将执行的代码行数实际上取决于浏览器执行实际重定向的速度。

最新更新