2015/07/04

IndexedDBのKeyにはboolean型ではなく0と1を使う

結論から書くと「IndexedDBのKeyにboolean型は使えない

でも、boolean型のデータは登録・取得できる。
登録・取得できるものだから、てっきりIDBKeyRange.only(true)とかできるのかと思ったらできなかった。

その対処方法をまとめていく。



IndexedDBで使用できるKey


  • Number primitive value
  • String primitive value
  • Date object
  • Array object

Array型だけはちょっとだけクセがあるみたいだけど、使えるのはこの4つだけ。
詳しくは、Indexed Database API - Keys を参照しいてほしい。



booleanの代わりに「0」と「1」を使う


幸いにも、JavaScriptは「0をfalse」「1をtrue」として判定してくれるので簡単に使える。
クリックしたらtrue→false、false→trueにするデータなら、以下のように実装できる。
var toggle = 0;

$('#data').click(function() {
    toggle = toggle ? 0 : 1;
});

var range = IDBKeyRange.only(toggle);

上記みたいに変換して使うことができる。




参考サイト





以上

written by @bc_rikko

0 件のコメント :

コメントを投稿