是否有可能在浏览器重新加载之前执行长时间运行的函数?



在我的web应用程序中,我确实通过以下函数来防止页面重新加载:

window.onbeforeunload = (event) => {
const e = event || window.event;
// Cancel the event
e.preventDefault();
save_user_data_to_indexed_db();
if (e) {
e.returnValue = ''; // Legacy method for cross browser support
}
return ''; // Legacy method for cross browser support
};

但是,在"重新加载站点?"期间,save_user_data_to_indexed_db()函数没有被执行。消息。我想,如果我能在显示消息期间执行我的函数,我也许可以自动以编程方式回答相同的对话框,并让浏览器继续重新加载页面。

有没有办法让浏览器等待这种操作?

一般来说,没有办法让浏览器等待。在这种情况下,我经常做的是同步地将数据写入一个中间位置,比如localStorage,然后在有时间的时候(比如下次再次加载页面的时候),或者从service worker中异步地将数据复制到indexedDB。

相关内容

  • 没有找到相关文章

最新更新