ObjectStoreを作成するところまではできたので、次は、保存されているデータ数を取得する方法について。
var db;
var indexedDBName = 'localDB';
var storeName = 'localStore';
var version = 1;
var indexedDB;
indexedDB = window.indexedDB || window.webkitIndexedDB || window.mozIndexedDB || window.msIndexedDB;
//var openRequest = indexedDB.open(indexedDBName,version);
openRequest.onupgradeneeded = function(e) {
db = e.target.result;
db.createObjectStore(storeName,{
keyPath:'id',
autoIncrement:true
});
};
openRequest.onsuccess = function(e) {
db = e.target.result;
var transaction = db.transaction([storeName],'readonly');
var store = transaction.objectStore(storeName);
var request = store.count();
request.onsuccess = function(e){
var count = e.target.result;
console.log(count)
};
request.onerror = function(e){
};
transaction.oncomplete = function(){
};
};
openRequest.onerror = function(e) {
};
という形でデータベースがオープンしてからトランザクションしないとエラーになってしまいます。この辺、coffeeでもっと簡単に書けないかなー、かつ、かっこよく。
参考
【HTML5】Indexed Database API を真面目に勉強してみる
[HTML5] Indexed DBで検索結果をキャッシュする #2
IndexedDB概要
0 コメント:
コメントを投稿