首页  >  问答  >  正文

javascript - location.reload的问题

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

我这里本来要实现点击后,刷新页面及全局变量flag赋值。成功刷新,但未能成功赋值;如果把location.reload注释掉,就可以赋值。 

location.reload()是异步吗,赋值的时候,刷新还没执行,而在赋值完成后进行了刷新操作,是这样吗?

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

全部回复(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
  • 取消回复