2016/07/07

[JavaScript]Indexed Database APIでObjectStoreのデータ数を取得

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 コメント:

コメントを投稿