HTML5のローカルストレージには、IndexEdDBと呼ばれるデータベースがあります。前の部分から:HTML5 Advancedシリーズ:Webストレージ、Webストレージはローカルアクセスのシンプルなデータに簡単にアクセスできることがわかっていますが、多数の構造化されたストレージの場合、IndexEdBの利点はさらに明白です。次に、IndexEdDBがデータを保存する方法を見てみましょう。
データベースを接続します1つのWebサイトには複数のIndexEdDBデータベースがありますが、各データベースの名前は一意です。データベース名を介して特定のデータベースを接続する必要があります。
var Research = indexeddb.open( 'dbname'、1); } request onsuccess = function(e){// console.logを実行する場合、 '接続データベースの成功');}
indexeddb.openメソッドを使用して、このメソッドは2つのパラメーターを受け取ります。このメソッドは、IDBOPENDBREQUESTオブジェクトを返して、データベースを要求するリクエストオブジェクトを表します。リクエストオブジェクトのONSUCCCCESSおよびONERRORイベントを監視することにより、接続が成功したか、実行に失敗する方法を定義できます。
データベース内のデータウェアハウスでは、データベースウェアハウスが同じバージョンで変更されないため、新しいバージョン番号はindexeddb.openメソッドでバージョンを更新する必要があります。バージョン番号は整数でなければなりません!
var Research = indexeddb.open( 'dbname'、2); is = is = is = = ' + e.newversion);}
リクエストオブジェクトのOnupgradeneedイベントを監視することにより、データベースバージョンが更新されたときに実行されたメソッドを定義します。
データベースをオフにしますindexedb.openを使用してデータベースの成功に接続した後、IDBOPENDBREQUESTオブジェクトが返されます。
var Research = indexeddb.open( 'dbname'、2); close();データベースを削除します
indexeddb.deletedatabase( 'dbname');オブジェクトウェアハウスを作成します
Object Storeは、IndexEdDBにはデータベーステーブルがありません。オブジェクトウェアハウスはデータベーステーブルに相当します。
var Research = indexeddb.open( 'dbname'、3); 'userid'、autoincrement:false});
DB.CreateObjectStoreメソッドは、2つのパラメーターを受信します。このオブジェクトのキーパスプロパティがメインキーであり、メインキーとしてデータベーステーブルのIDに相当します。 Autoiincrement属性は偽です。つまり、メインのキー値はそれ自体で増加しません。
注:データベースでは、オブジェクトウェアハウス名を繰り返すことはできません。そうしないと、ブラウザがエラーを報告します。
インデックスを作成しますIndexEdDBデータベースでは、データベースで検索する場合、属性設定によってのみ取得できます。
var Research = indexeddb.open( 'dbname'、4); 'userid'、autoincrement:false}); var idx = createindex( 'usernameindex'、{unique:false})console.log( 'create index success');}
Store.CreateIndexメソッドは3つのパラメーターを受け取ります値はJSオブジェクトです。このオブジェクトの一意のプロパティは真です。つまり、インデックス値が同じではないことを意味します。つまり、2つのデータのユーザー名は同じではなく、falseは同じである可能性があります。
問題IndexEdDBでは、すべてのデータ操作は問題でのみ実行できます。データベースが成功した後、idbopendbrequestオブジェクトのトランザクション方法を使用して、トランザクションの読み取りまたは読み取りのみを開くことができます。
var Research = indexeddb.open( 'dbname'、5); tx.Oncomplete = function(e){console.log( 'トランザクションは終了します');} tx.onabort = function(e){console.log( 'トランザクションは停止されています');}}}
db.transactionメソッドは2つのパラメーターを受信します。最初のパラメーターは文字列または配列であり、文字列はオブジェクトウェアハウス名であり、配列内のオブジェクトウェアハウスの配列は倉庫が動作しています。 2番目のパラメーターは、トランザクションモードがreadonlyに送信される場合、オブジェクトウェアハウスの操作のみを読み取ることができ、操作を作成できません。読み書き操作のために、読み書きのためにreadwriteに送信できます。
操作データvar Research = indexeddb.open( 'dbname'、5); '、'、 '、' readwrite ');値)データvar repk2 = store(1);削除(1); }}}}}}
ADDとPUTの役割は類似しています。Putがデータを保存すると、データの主要なキーがデータベースに同じプライマリキーを既に持っている場合、データベースのメインキーの対応するオブジェクトが変更されることです。そして、データを保存するために追加します。
検索データ上記では、get()メソッドを使用してデータを取得できることがわかりますが、主なキー値が必要です。さまざまなデータを取得したい場合は、カーソルを使用できます。カーソルは、オブジェクトウェアハウスのOpenCursorメソッドによって作成され、開かれました。
OpenCursorメソッドは、2つのパラメーターを受け取ります。
// Boundrangeは、1〜10(1および10を含む)の主要な値のコレクションを表します。 // 3番目のパラメーターがtrueの場合、最小キー値が1ではないことを意味します。4番目のパラメーターがtrueである場合、最大キー値10が含まれていないことを意味し、デフォルトはfalseVar boundrange = idbkeyrande.boundです。 (1、10、false、false); // onlangeメインキー値のコレクションを示します。唯一の()パラメーターは、メインキー値、整数タイプです。 varmingrange = idbkeyrange.only(1); // 2番目のパラメーターはオプションです。つまり、trueには最小プライマリキー1が含まれていません。 10本のエッセンス未満の主キー値の// 2番目のパラメーターはオプションです。つまり、trueには最大のプライマリキー10とfalseが含まれないことを意味します。デフォルトはfalseVar upperrange = idbkeyrange.upeperbound(10、false)です。
OpenCursorメソッドの2番目のパラメーターは、主に次のような読み取り方向を表しています。
var Research = indexeddb.open( 'dbname'、6); '、'、 '、' readwrite '); ; }
検索条件を満たすデータがある場合、更新方法を使用してデータを更新できます。
cursor.updata({userid:cursor.key、username: 'hello'、age:18});
このデータは、削除メソッドを介して削除できます。
cursor.delete();
Constinueメソッドを介して次のデータを読み続けることができます。そうしないと、最初のデータを読んだ後も読み続けることはありません。
cursor.continue();要約します
データベースの接続から、オブジェクトウェアハウス、インデックスの作成、操作および取得データまで、IndexEdDBアクセスデータの完全なプロセスを完了します。以下に、indexedDBデータベースをよりよく把握するための完全な例を介して。コードアドレス:indexeddb-demo
上記は、この記事のすべての内容です。