Indexed DB
by yshrkn
JavaScript
// データベースを開く 第2引数はバージョン(整数使用すること>)
var request = window.indexedDB.open("MyTestDatabase", 6);
var db;
// 顧客データ
const customerData = [
{ ssn: "444-44-4444", name: "Bill", age: 35, email: "[email protected]" },
{ ssn: "555-55-5555", name: "Donna", age: 32, email: "[email protected]" }
];
request.onerror = function (event) {
// エラーの場合の処理
console.log("DBオープン時にエラーが発生しました。");
};
request.onsuccess = function (event) {
db = event.target.result;
};
request.onupgradeneeded = function (event) {
// IDBDatabase インターフェイスに保存します
var db = event.target.result;
// このデータベース用の objectStore を作成します 'keyPath'で指定されたデータは一意
var objectStore = db.createObjectStore("customers!", { keyPath: "ssn" });
// 顧客を名前で検索するためのインデックスを作成します。
// 重複する可能性がありますので、一意のインデックスとしては使用できません。
objectStore.createIndex("name", "name", { unique: false });
// 顧客をメールアドレスで検索するためのインデックスを作成します。2人の顧客が同じメールアドレスを
// 使用しないようにしたいので、一意のインデックスを使用します。
objectStore.createIndex("email", "email", { unique: true });
// データを追加する前に objectStore の作成を完了させるため、
// transaction oncomplete を使用します。
objectStore.transaction.oncomplete = function (event) {
var customerObjectStore = db.transaction("customers", "readwrite").objectStore("customers");
for (var i in customerData) {
console.log(customerData);
customerObjectStore.add(customerData[i]);
}
};
};