鍍金池/ 問答/HTML/ window.location.href有什么機制嗎?

window.location.href有什么機制嗎?

?
(function(){

window.location.href= 'www.baidu.com'
alert('23')
console.log(123)

}())
?為什么先彈出123 再console呢? 在ajax中也是,window.location.href 不跳轉(zhuǎn)?求解這里面是有什么機制嗎?

回答
編輯回答
生性

window.location.href不會立即就阻塞所有的代碼,這和alert不一樣,它至少會等待一個頁面離開事件,那么在同時,代碼會往下執(zhí)行。

alert阻塞當前代碼,這個沒啥好問的吧,規(guī)定就是這樣,alert,confirm和prompt都是同步的,所以后面的代碼都會被阻塞。

ajax中的location.href不跳轉(zhuǎn)?

問得不清楚,我查了類似的關(guān)鍵字,這是你要的說法,Artical,沒啥難理解的,submit的重定向在success回調(diào)之前。

如果你說的不是這種情況,建議補充一下問題

2017年6月25日 19:03
編輯回答
失心人

是異步的
因為 LocationChange 行為在瀏覽器內(nèi)核中是起定時器異步執(zhí)行的,代碼可以參見 Chromium 源碼 NavigationScheduler::ScheduleFrameNavigation。異步執(zhí)行的好處是為了防止代碼調(diào)用過深,導致棧溢出,另外也是為了防止遞歸進入加載邏輯,導致狀態(tài)紊亂,保證導航請求是順序執(zhí)行的。

知乎上的答案

2018年4月1日 20:17