代码之家  ›  专栏  ›  技术社区  ›  rony l

卸载前保存到indexeddb

  •  3
  • rony l  · 技术社区  · 6 年前

    我想在用户离开我的页面之前保存到indexeddb。我定期这样做,但因为它相当大,我不想经常储蓄。

    我当前(损坏的)代码如下:

    window.addEventListener('beforeunload', (event) => {
        persist(state);
    });
    

    在这里,persist立即返回一个承诺,在我有机会保存状态之前,浏览器已经存在。

    不幸的是,目前看来indexeddb还没有同步api。

    有什么可以让浏览器等待以便将值存储到indexeddb中的吗?

    2 回复  |  直到 6 年前
        1
  •  1
  •   Josh    6 年前

    不如在页面卸载时保存到本地存储。稍后,在localstorage中检查此值,并在有更多时间时将其移到indexeddb中。

        2
  •  1
  •   Rohith Murali    6 年前

    在你的页面上可以先有一个保存按钮。

    然后,当用户关闭页面时,您可以在关闭页面时显示一个对话框以请求确认,而无需保存。e您可以利用这段时间来保存数据,或者因为通知用户保存数据,所以用户可以手动按保存按钮来保存数据。