当浏览器标签页关闭时,JavaScript 代码是否会停止运行?

4
我有一些JavaScript代码,在组件加载完成后运行:
function HelloThere() {
     React.useEffect(() => {
         setTimeout(() => {
             // code to make a server call to write data to DB
         }, 60 * 1000);
    }, []);
    return <h1>Hello there</h1>;
}

我的问题是:

如果useEffect中的代码被执行(组件被加载),但用户在60秒超时之前关闭了选项卡(或刷新了浏览器),那么代码是否仍在后台运行并写入数据到数据库?感谢帮助!


不,这段代码不会运行。我认为你可以通过使用localStorage来验证这一点。设置一个超时时间,运行脚本,关闭选项卡,然后查看localStorage是否已更新。 - John
1个回答

4
不,这段代码不会运行。我认为你可以通过使用localStorage来验证。设置一个超时时间,运行脚本,关闭标签页,看看localStorage是否已经更新。
例如:
setTimeout(() => {
  window.localStorage.setItem('timeout-test', 'update after tab is closed')
}, 5000);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接