首頁  >  問答  >  主體

javascript - location.reload的問題

start.onclick=function newGame(){
    location.reload();
    flag = selectModel[0];
    console.log(flag);
};

我這裡本來要實現點擊後,刷新頁面及全域變數flag賦值。成功刷新,但未能成功賦值;如果把location.reload註解掉,就可以賦值。 

location.reload()是異步嗎,賦值的時候,刷新還沒執行,而在賦值完成後進行了刷新操作,是這樣嗎?

给我你的怀抱给我你的怀抱2713 天前1199

全部回覆(3)我來回復

  • 習慣沉默

    習慣沉默2017-05-18 10:53:54

    你先了解 javascript 在瀏覽器中的生命週期。

    重載頁面後,進入下一個生命週期,上一個週期裡賦值的flag,即使賦值成功,也被銷毀了。

    頁面刷新,相當於丟掉一切重來,和重新開啟頁面無二。

    什麼奇葩需求會要求點選連結刷新後還要修改全域下的flag?

    回覆
    0
  • 怪我咯

    怪我咯2017-05-18 10:53:54

    可以把這個flag存到localdtorage

    回覆
    0
  • 我想大声告诉你

    我想大声告诉你2017-05-18 10:53:54

    應該是同步才對,所以好一點的方式可以考慮這樣:

    start.onclick=function newGame(){
        flag = selectModel[0];
        console.log(flag);
        setTimeout(() => {
            location.reload();
        });
    };

    回覆
    0
  • 取消回覆