IndexedDB
2241 ワード
IndexedDBは、強力で柔軟な記憶システムであり、ユーザーブラウザに保存したいデータを保存するために使用できます.しかし、優れた機能と柔軟性により、APIはWebストアのように友好的ではない.また、モバイル端末のブラウザがIndexedDBに対するサポートはまだ友好的ではないことも分かります.
IndexedDBキー用語
データベース
IndexedDBの最上層はデータベースの概念です.
オブジェクト格納
オブジェクトはデータを保存する樽に相当します.従来の関係データベースを使用していると、オブジェクトをテーブルに格納することができます.しかし、IndexedDBはより柔軟にデータを記憶することができる.
索引
索引はオブジェクト格納からデータを検索する方式です.
データベースを使う
データベースを作成するには、名前とバージョンが必要です.データベース構造(オブジェクトの記憶と索引のことで、実際のデータ自体ではなく)はバージョン変更時にのみ一時的に調整できます.IndexDBでは、あなたがしているすべての操作は非同期です.したがって、データベースを開くということは、すぐに使用できるということではなく、イベントに応答してから使用できるようにする必要があります.データベース操作によってトリガされるイベントは、success、error、up gradeneeded、およびblockedを含み、up gradeneededは、ユーザが最初にデータベースにアクセスしたときやバージョン番号が変化したときに出発する.これはデータ構造を設定する場所である.blocedは、データベースが利用できないか、または使用できないときにトリガされます.
オブジェクトの保存を使う
前に述べましたが、indexedDBオブジェクトはSQLデータベーステーブルに似ています.「people」「notes」または他のオブジェクトの例のような「タイプ」のデータだけを含むべきです.その考えは、各持続性が必要なデータタイプに対して一つのオブジェクトが格納されているということである.オブジェクト格納は、upladeneededイベント処理中にのみ作成できます.あなたが設計したデータベースが二つのオブジェクトの記憶をサポートしていると仮定します.データの後、第三種類のデータを保存することにしました.二つのことをする必要があります.まず、バージョン番号を変更します.第二に、コードを作成し、新しいオブジェクトの記憶を追加します.
オブジェクトの保存を作成
オブジェクトの保存を作成するには、まず、それが存在するかどうかを確認します.データベース変数(オープンデータベースから動作するイベントプロセッサから取得)を利用して、object StreNames属性にアクセスできます.このプロパティはDOMStringListの例であり、値が既に含まれているかどうかを確認することができます.ない場合は、createObject Store(「name」、options)メソッドを呼び出してオブジェクト格納を作成することができます.
オブジェクト記憶には、データごとに独自の識別が可能な方法が必要です.オブジェクトの記憶を定義する場合、データを一意に識別する方法を定義できます.実際、主に二つの定義があります.一つは、本質的には常に存在し、固有の情報を含む属性であるkey pathを定義することである.もう一つはkey generatorを使用することであり、本質的には一意の値を生成する方法である.
IndexedDBキー用語
データベース
IndexedDBの最上層はデータベースの概念です.
オブジェクト格納
オブジェクトはデータを保存する樽に相当します.従来の関係データベースを使用していると、オブジェクトをテーブルに格納することができます.しかし、IndexedDBはより柔軟にデータを記憶することができる.
索引
索引はオブジェクト格納からデータを検索する方式です.
データベースを使う
データベースを作成するには、名前とバージョンが必要です.データベース構造(オブジェクトの記憶と索引のことで、実際のデータ自体ではなく)はバージョン変更時にのみ一時的に調整できます.IndexDBでは、あなたがしているすべての操作は非同期です.したがって、データベースを開くということは、すぐに使用できるということではなく、イベントに応答してから使用できるようにする必要があります.データベース操作によってトリガされるイベントは、success、error、up gradeneeded、およびblockedを含み、up gradeneededは、ユーザが最初にデータベースにアクセスしたときやバージョン番号が変化したときに出発する.これはデータ構造を設定する場所である.blocedは、データベースが利用できないか、または使用できないときにトリガされます.
function idbOK(){
return "indexedDB" in window;
}
$(documengt).ready(function() {
if(!idbOK) return;
var openRequest = indexedDB.open("ora_idb1", 1);
openRequest.onsuccess = function(e) {
var db = e.target.result;
}
});
上記のコードでは、まずブラウザがIndexedDBをサポートしているかどうかを確認します.サポートするなら、indexedDB.open方法を使ってデータベースを開きます.最初のパラメータはデータベース名です.一つのIndexedDBデータベースは一つのサイトにしか提供していないので、この名前が他のデータベースの名前と競合する心配はない.オブジェクトの保存を使う
前に述べましたが、indexedDBオブジェクトはSQLデータベーステーブルに似ています.「people」「notes」または他のオブジェクトの例のような「タイプ」のデータだけを含むべきです.その考えは、各持続性が必要なデータタイプに対して一つのオブジェクトが格納されているということである.オブジェクト格納は、upladeneededイベント処理中にのみ作成できます.あなたが設計したデータベースが二つのオブジェクトの記憶をサポートしていると仮定します.データの後、第三種類のデータを保存することにしました.二つのことをする必要があります.まず、バージョン番号を変更します.第二に、コードを作成し、新しいオブジェクトの記憶を追加します.
オブジェクトの保存を作成
オブジェクトの保存を作成するには、まず、それが存在するかどうかを確認します.データベース変数(オープンデータベースから動作するイベントプロセッサから取得)を利用して、object StreNames属性にアクセスできます.このプロパティはDOMStringListの例であり、値が既に含まれているかどうかを確認することができます.ない場合は、createObject Store(「name」、options)メソッドを呼び出してオブジェクト格納を作成することができます.
openRequest.onupgradeneeded = function(e) {
var thisDB = e.target.result;
if(!thisDB.objectStoreNames.contains("firstOS")) {
thisDB.createObjectStore("firstOS");
}
}
メインキーの定義オブジェクト記憶には、データごとに独自の識別が可能な方法が必要です.オブジェクトの記憶を定義する場合、データを一意に識別する方法を定義できます.実際、主に二つの定義があります.一つは、本質的には常に存在し、固有の情報を含む属性であるkey pathを定義することである.もう一つはkey generatorを使用することであり、本質的には一意の値を生成する方法である.