ホームページ > ウェブフロントエンド > jsチュートリアル > indexedDBを使用してブラウザに無制限*データを保存する方法

indexedDBを使用してブラウザに無制限*データを保存する方法

Lisa Kudrow
リリース: 2025-02-09 10:02:09
オリジナル
277 人が閲覧しました

How to Store Unlimited* Data in the Browser with IndexedDB

この記事では、代替方法の容量を超えるクライアント側のデータストレージの堅牢なブラウザAPIであるIndexedDBを調査します。 クライアント側のデータストレージオプションは大幅に拡張されており、サーバーベースのデータベースの更新に代わるものを提供しています。

indexedDBの重要な利点:

    高ストレージ容量:
  • indexedDBは、他のクライアント側のオプションよりもかなり多くのストレージを提供し、ドメインごとに少なくとも1GBと利用可能なディスクスペースの最大60%を提供する可能性があります。 非同期操作:
  • その非同期性は、他のスクリプトをブロックせずにバックグラウンド処理を許可します。大きなデータセットに最適です。
  • 包括的なCRUD操作:データベースバージョンとスキーマ管理とともに、レコードの作成、読み取り、更新、削除をサポートしています。
  • データの整合性:トランザクションを通じてデータの整合性を維持し、すべての操作が一緒に成功または失敗するようにします。
  • キーベースのデータアクセス:
  • データはオブジェクトストアにあり、キーによって識別されたレコードがあります。 ブラウザdevtools統合:
  • デバッグと管理は、ブラウザdevtoolsを介して促進され、データの調査、変更、およびクリアを可能にします。
  • ライブラリサポート:約束や非同期のような最新のJavaScript機能をネイティブにサポートしていない一方で、このギャップをブリッジするようなライブラリ。
  • なぜクライアント側のストレージを選択するのか? サーバー側のストレージはほとんどのユーザーデータに適していますが、クライアント側のストレージは次のことに有利です。
  • デバイス固有の設定:UIの好み、ライト/ダークモードなどidb
は必要なデータ:アップロード前の写真のような一時的なデータ。

オフラインデータの同期:低接続性領域での後で同期するためのデータ。

プログレッシブWebアプリ(PWAS):

ユーザビリティまたはプライバシーの理由のためのオフライン機能。
  • Assetキャッシュ:キャッシングによるパフォーマンスの向上
  • ブラウザストレージAPIの比較:
  • Webストレージ:シンプルな同期名値ペアストレージ。小さな非クリティカルなデータ(ドメインあたり5MB)に適しています
  • キャッシュAPI:httpリクエスト/応答ペアを保存します。
  • indexedDB:
  • データ、ファイル、ブロブのクライアント側NOSQLデータベース(ドメインあたり少なくとも1GB、利用可能なディスクスペースの最大60%まで)。
  • indexedDBファンダメンタルズ:

2015年に標準化されたIndexEdDB(2018年のAPI 2.0、開発中のAPI 3.0)は、幅広いブラウザのサポートを享受しています。 この記事では、コアの概念に焦点を当てています:

How to Store Unlimited* Data in the Browser with IndexedDB

  • データベース:トップレベルのコンテナ。 アクセスは同じドメインに制限されています
  • オブジェクトストア:関連データの名前/値ストア(MongodbのコレクションやSQLのテーブルなど)。
  • キー:オブジェクトストアの各レコードの一意の識別子(自動生成またはカスタム)。
  • autoincrement:
  • レコードの追加時にキー値を自動的に増加させます。
  • index:
  • 効率的な検索のためにオブジェクトストア内でデータを編成します。 スキーマ:
  • オブジェクトストア、キー、インデックスを定義します
  • バージョン:スキーマアップデートの整数。
  • 操作:データベースアクション(crud)。
  • トランザクション:データの整合性(すべてまたは何もない)を確保するために操作をラップします。
  • カーソル:記録を効率的に繰り返し、すべてをメモリにロードすることを避けます。
  • 非同期実行:
  • 操作は非同期に実行され、他のコードが実行を継続できるようにします。
  • データ構造の例(記録に注:
  • indexedDBはイベントとコールバックを使用しますが、ネイティブの約束と非典型的なサポートがありません(ただし、
  • のようなライブラリはこれを提供します)。 devtoolsでのデバッグ:

ブラウザdevtools(クロムベースのブラウザーのアプリケーションタブ、Firefoxのストレージ)は、indexedDBデータの調べ、変更、およびクリアのために非常に貴重です。

{
  id: 1,
  title: "My first note",
  body: "A note about something",
  date: <date object>,
  tags: ["#first", "#note"]
}
ログイン後にコピー

idbindexedDBサポートとストレージスペースのチェック:

indexedDB接続の開始:

How to Store Unlimited* Data in the Browser with IndexedDB How to Store Unlimited* Data in the Browser with IndexedDB (CRUD操作、スキーマの更新、およびカーソルの使用法を詳述する後続セクションは簡潔に省略されていますが、元の応答は包括的な例を提供します。)

よくある質問(FAQ):

元の応答には、最大ストレージサイズ、大規模なデータセットの取り扱い、ストレージ制限の超過、ストレージ制限の増加、使用状況チェック、データの永続性、BLOBオブジェクトストレージ、セキュリティ、ワーカーの使用、エラー処理をカバーする包括的なFAQセクションが含まれます。 これらはすべて、元の出力内で詳細に対処されています。

以上がindexedDBを使用してブラウザに無制限*データを保存する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート