ゼットログ

よしなしごとを記す

ローカルストレージに気軽にJSONデータを取り込めるLawnchair

あるアプリを作ろうとしていてローカルストレージが必用になったので、調べてみたらLawnchairというものを見つけました。これを使うとブラウザのローカルストレージへ気軽にJSON形式のデータをCRUDすることができるようになります。
サンプルとして、自分のひとことをローカルストレージへ保管するものを試してみました。

テキストに何か打ち込んで、postボタンを押すと下に一覧として出てくるだけです。Chromeデベロッパーツールで見ると、ちゃんとローカルストレージに格納されているのがわかります。"words"となっているのは自分で定義したグループで、関連したデータはこのグループ配下に入り込むようになります。椅子が一脚あって、そこになにかがどんどん積み重なっていく感じでしょうか。

サンプルのコード全体はGithubにあります。

最初にデータグループを定義。

  var store = new Lawnchair({name:'words'},function(store){ ... }

後はsaveメソッドで保存。キーをしていないと、uuidで自動的に採番してくれます。CouchDBっぽいな。既存のキーを指定すると更新になります。

  $("#words-btn").click(function () {
    // save data.
    store.save({words:$("#words").val()});
    $("#words-list").load();
  });  	
 $("input.words-edit").keypress(function (keycode) {
      if (keycode.which == 13) {
          var id = $(this).parent("li").attr("id");
          store.save({key:id,words:$(this).val()});
      }
  });  	

削除はremove。公式ドキュメントにはdestroyとなっていたけど、コード見たら実際はremoveというメソッドで実装されていました。

    store.remove(id,function(){
    	$(this).parent("li").remove();
        $("#words-list").load();
    });

プラグインが複数あって、それらを追加するとより柔軟なストレージ操作ができるようです。便利ですね。