如何制作 Web 应用程序的数据 "persistent" 而不是 "best-effort"?我想避免数据不足时被清除space

How do I make the data of a web app "persistent" as opposed to "best-effort"? I want to avoid the data being cleared when there is not enough space

根据https://developer.mozilla.org/en-US/docs/Web/API/StorageManager/persist,你可以将一个框标记为"persistent",如下所示:

if (navigator.storage && navigator.storage.persist)
  navigator.storage.persist().then(function(persistent) {
    if (persistent)
      console.log("Storage will not be cleared except by explicit user action");
    else
      console.log("Storage may be cleared by the UA under storage pressure.");
  });

根据https://developer.mozilla.org/en-US/docs/Web/API/Storage_API

“如果一个框被标记为 "persistent",则内容不会被用户代理清除,除非数据来源本身或用户没有特别这样做。这包括场景例如用户选择 "Clear Caches" 或 "Clear Recent History" 选项。将专门询问用户是否允许删除持久性站点存储单元。"

但是,清除 Chrome 中的近期历史记录和 Firefox 会在未征得我许可的情况下删除数据。我错过了什么?

清除 Chrome 和 Firefox 中的近期历史记为 'explicit user action'。你应该得到一个确认对话框,即使它没有提到 'storage'。普通用户甚至不知道 'persistent storage' 是什么。