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

场景A:执行同步函数A。用户在 functionA 执行过程中关闭窗口。窗口关闭(或刷新)后代码的执行是否会立即停止?想象一下 functionA 对数据库进行了许多修改。函数前半部分的代码是否有可能改变数据库?如果是这样,这可能会导致我的项目出现问题。有没有办法保证整个功能完成呢?

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


心有法竹
浏览 66回答 1
1回答

蓝山帝景

窗口关闭(或刷新)后代码的执行是否会立即停止?是的。想象一下 functionA 对数据库进行了许多修改。函数前半部分的代码是否有可能改变数据库?是的。如果是这样,这可能会导致我的项目出现问题。有没有办法保证整个功能完成呢?不。一般来说,对于数据库,您可以使用事务,因此如果未完成完整的更改集,它将回滚。场景 B:setTimeout 有一个在一段时间后执行的回调。窗口在回调被放入调用堆栈之前关闭(恰好)。回调会执行还是会被丢弃?它被丢弃。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript