为了账号安全,请及时绑定邮箱和手机立即绑定

当用户关闭窗口(或导航离开窗口)时执行 JS 会发生什么?

当用户关闭窗口(或导航离开窗口)时执行 JS 会发生什么?

心有法竹 2023-11-02 22:00:13
场景A:执行同步函数A。用户在 functionA 执行过程中关闭窗口。窗口关闭(或刷新)后代码的执行是否会立即停止?想象一下 functionA 对数据库进行了许多修改。函数前半部分的代码是否有可能改变数据库?如果是这样,这可能会导致我的项目出现问题。有没有办法保证整个功能完成呢?ScenarioB:setTimeout有一段时间后执行的回调。窗口在回调被放入调用堆栈之前关闭(恰好)。回调会执行还是会被丢弃?
查看完整描述

1 回答

?
蓝山帝景

TA贡献1843条经验 获得超7个赞

窗口关闭(或刷新)后代码的执行是否会立即停止?

是的。

想象一下 functionA 对数据库进行了许多修改。函数前半部分的代码是否有可能改变数据库?

是的。

如果是这样,这可能会导致我的项目出现问题。有没有办法保证整个功能完成呢?

不。

一般来说,对于数据库,您可以使用事务,因此如果未完成完整的更改集,它将回滚。

场景 B:setTimeout 有一个在一段时间后执行的回调。窗口在回调被放入调用堆栈之前关闭(恰好)。回调会执行还是会被丢弃?

它被丢弃。


查看完整回答
反对 回复 2023-11-02
  • 1 回答
  • 0 关注
  • 64 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信