Problem mit location.reload – Stapelüberlauf
给我你的怀抱
给我你的怀抱 2017-05-18 10:51:54
0
3
1226
start.onclick=function newGame(){
    location.reload();
    flag = selectModel[0];
    console.log(flag);
};

Ursprünglich wollte ich die Seite aktualisieren und nach dem Klicken das globale Variablen-Flag zuweisen. Erfolgreich aktualisiert, der Wert konnte jedoch nicht erfolgreich zugewiesen werden. Wenn location.reload auskommentiert ist, kann der Wert zugewiesen werden.

Ist location.reload() asynchron? Wenn der Wert zugewiesen wird, wird die Aktualisierung noch nicht ausgeführt, aber der Aktualisierungsvorgang wird ausgeführt, nachdem die Zuweisung abgeschlossen ist.

给我你的怀抱
给我你的怀抱

Antworte allen(3)
習慣沉默

你先了解一下 javascript 在浏览器中的生命周期。

重载页面后,进入下一个生命周期,上一个周期里赋值的flag,即使赋值成功,也被销毁掉了。

页面刷新,相当于丢掉一切重来,和重新打开页面无二。

什么奇葩需求会要求点击链接刷新后还要修改全局下的flag?

刘奇

可以把这个flag存到localdtorage

我想大声告诉你

应该是同步才对,所以好一点的方式可以考虑这样:

start.onclick=function newGame(){
    flag = selectModel[0];
    console.log(flag);
    setTimeout(() => {
        location.reload();
    });
};
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage