我正在使用 Web SQL API 在页面上存储一些信息;当用户关闭页面或导航离开时,我想保存页面的状态,因此,我开始:
window.onunload = function () {
db.transaction(function (tx) {
executeSql("INSERT INTO State (foo) VALUES (?)", [foo]);
});
};
但是,这是异步的,因此在页面消失之前它不会完成。
alert("Saved!");
我通过在 my 的末尾添加一个(不诚实,因为它还没有发生)来解决这个不令人满意的问题window.onunload
,这会延迟卸载直到数据库有机会做它的事情,但我宁愿没有那个警报如果我可以避免。
有任何想法吗?我需要onunload
暂时阻止调用该函数的线程,这就是警报的作用。
(顺便说一句,为了阻止我使用同步版本的任何建议openDatabaseSync
,该 API 仅针对 Web Worker 指定和实现,而不是针对 Window 对象。)