代码:
$("button").on("click",function() {
//跳转的链接写为同源地址,方便查看localStorage来测试跳转后的代码是否执行
window.location.href='http://127.0.0.1/index.html';
setTimeout(function() {
localStorage.setItem("aa","aaaa");
},0);
})
此时,setTimeout中的代码即使跳转了,也依然会执行,是因为window.location.href是异步吗?
但如果把setTimeout的延迟时间改为1000,即:
$("button").on("click",function() {
window.location.href='http://127.0.0.1/index.html';
setTimeout(function() {
localStorage.setItem("aa","aaaa");
},1000);
})
修改后的代码执行结果是:页面跳转了,但没有执行setTimeout中的语句。
有能帮忙解答下吗 window.location.href是同步还是异步,执行机制是怎样的。
感谢~~
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…