IndexEdDBは、クライアントストレージ用に多数の構造化データ(ファイル/ブロブを含む)を保存する低レベルAPIです。 APIはインデックスを使用して、データの高いパフォーマンス検索を実現します。
最近、データをオフラインで保存できるビジネスニーズがあり、ネットワーク信号があるときにフォームと写真をアップロードできます。そこで、HTML5のindexedDBを研究しました。
特定のフィールドのストレージのみのニーズについては、ローカルストレージとセッションストレージを使用して完了できます。しかし、大量のデータが保存されると、ローカルストレージとセッションストレージはニーズを満たすことにはほど遠いものになります。この時点で、indexedDBの強度が反映されます。
1.データベースを作成または開きます/*異なるブラウザのindexeddb = window.indexeddb ||バージョン); //名前:バージョン:データベースバージョン番号
IndexEdDBはさまざまなブラウザに互換性があるため、IndexEdDBと互換性がある機能の一部が必要です。
2。データベースに接続されたコールバック関数request.addeventlistener( 'success'、function(event){// open or create database success}、false.addeventlistener( 'error'、function(event){//データベース障害を開くか作成}、false )request.addeventristener( 'upgradeneed'、function(event){// false);
データベースに接続した後、リクエストは次の3つの状態を聞きます。
アップグレードされた状態は、indexedDDBが新しいデータベースとindexedb.open(名前、バージョン)バージョン(データベースバージョン番号)を作成するときにこの状態を監視することです。バージョン番号が変更されない場合、この状態はトリガーされません。データベースのオブジェクトストアの作成と削除は、この監視イベントで実行されます。
3.オブジェクトストアを作成および削除しますindexedDBでは、ObjectStoreはデータベーステーブルに似ています。
request.addeventlistener( 'upgradeneeded'、function(event){//データベースインスタンスconst db = event.target.result; //データベースdb.close(); // bkystorenames.contains(objectstorename);// / delete objectStore db.deleteObjectStore(objectStorename);}、false);
次の方法を使用して、オブジェクトストアを作成できます
request.addeventlistener( 'upgradeneeded'、function(event){//データベースインスタンスconst.target.result; // ObjectStore if(!db.ObjectStorenames。contains(const store = contains)があるかどうかを決定するdb .CreateObjectStore(objectStoreName、{keypath:keypath // keypath as objectstore});インデックスは一意});}}、false);4。データの追加、削除、変更チェック
request.addeventListener( 'success'、function(event){//データベースインスタンスconst db = event.target.result; // objectstore db.transaction(objectstorename、wa); // waは 'readwrite'、データを読み取り、書き込み//データを「読み取り」の場合、データはconst store = transaction.objectStore(objectStorename);}、false)のみを読み取ります。
データベースの追加、削除、および変更:
//データが存在する場合、データはstore.add(obj)を追加しません。対応するdelete(値)指定されたキーワードに対応します( 'Success'、function(event){//コールバック関数}、false);
インデックスに従ってデータを見つけます
const index = store.index(indexname);値// data result.continue();
インデックスの範囲に従ってデータを見つけます
const index = store.index(indexname); const cursor = index.opencursor(範囲); idbkeyrangeオブジェクトは、条件に応じた条件の指定された範囲の指定された範囲のデータです*///範囲= idbkeyrange.lowerbound(value、true)// ∞)、> Valuerange = idbkeyrange(value、false)//> = value // intopen:true、open interval = idbkeyrange.upperbound (value、isopen)// value1以上、value2idbkeyrange.bound(value1、value2、isopen1、isopen2)
最後に、indexedDBのライブラリは、DUAN602728596/indexedDBを参照できます
上記は、Xiaobianによって導入されたHTML5ストレージのIndexDBです。 VEVBウーリンのウェブサイトへのご支援ありがとうございます!