我本以为,在下面的函数中,第一个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/';
在重定向发生并且页面将转到下一个网址之前,其余的代码将按照正常运行的方式执行,因此将执行的代码行数实际上取决于浏览器执行实际重定向的速度。