如何在Firefox浏览器上可靠地完成异步操作?



我正在为Firefox编写一个浏览器扩展,它使用IndexedDB保存本地数据。当浏览器关闭时,我想将最新的数据写入IndexedDB。然而,IndexedDB是完全异步的,而且看起来Firefox在异步写入完成之前就关闭了。(我可以看到数据库文件正在创建,日志文件在浏览器关闭时被丢弃。)是否有一种方法可以在Firefox关闭时可靠地完成异步操作?

你可以使用一个事件监听器(你可能已经有它写到你的数据库)来监听窗口关闭事件和preventDefault,直到你完成存储你的东西,然后在回调时关闭窗口。

window.addEventListener("close", function(e) {
    e.preventDefault(); 
    //Save your things
    //Call window.close on the callback
    window.close();
}, false);

在stackoverflow上还有一个不同的问题,可能有更好的方法来侦听应用程序关闭而不是窗口关闭。但是这个过程是相似的。

最新更新