web-dev-qa-db-ja.com

持続性の寿命

IndexdDBに関するいくつかの記事を読みましたが、永続化されたデータの存続期間に関する詳細を見つけることができませんでした。データ操作のセッションに使用し、ユーザーが終了したらアップロードする予定です。しかし、次の場合はどうなりますか。

  • ユーザーがブラウザタブを閉じる
  • ユーザーがブラウザを閉じます
  • ユーザーがシステムを再起動しました

また、Cookieベースの認証を通じてユーザーセッションを維持しています。ユーザーがログオフして再度ログインするとどうなりますか?ログオフの前にデータを取得する方法はありますか?

これを処理するためのドキュメントをいただければ幸いです。 spec をざっと読みましたが、あまりよく読めません。

ありがとう。

25
bsr

IndexedDBデータは 一時的なタイプ に属します。したがって、これらのデータはいつでも消去できます。

これらのデータサイズ/ライフタイムは、非常に新しい クォータ管理API によって管理されます。

将来的には、IndexedDBは永続性タイプを使用する可能性があります(可能性は低く、良い考えでもありません)。

5
Kyaw Tun

localStorageに似ているため、クロスセッションです。つまり、ブラウザまたはシステムを再起動しても、そこに保存されているものには影響しません。ただし、ユーザーはCookieをクリアするようにクリアできます。したがって、これは永続的なCookieと同じであり、サーバー側からは信頼せず、常にその整合性をチェックする必要があります。

15
Cat Chen

永続ストレージ はChrome v52以降およびFirefox以降v55で利用可能です。ただし、他のブラウザでのサポートは信頼できません。永続ストレージが利用可能かどうかをテストする必要があります。それに応じて反応します。

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

Chromeには、この機能を使用するための許可が必要です。次のいずれかに該当する場合、navigator.storage.persist()を呼び出すと自動的に付与されます。

  • サイトはブックマークされています(そしてユーザーは5つ以下のブックマークを持っています)
  • サイトのエンゲージメントが高い
  • このサイトはモバイルデバイスのホーム画面に追加されました
  • サイトでプッシュ通知が有効になっている

このリストは Chromeの実装の概要を説明する記事 からのものであり、この主題に関する新しい情報で定期的に更新されます。

2
Besworks