まめ畑

ゆるゆると書いていきます

jetpackのstorage.simpleで保存したデータを消す方法

昨日、第04回テーマ「Jetpack入門」を見ていて、チャットで「jetpack.storage.simple」で保存したデータを消す方法は?
っという発言があり、remove関数を使って消す事が出来、配列で一気に消すKeyを指定する事も出来ると言ったのですが、その時使っていた環境のバージョンが古い事に気付いておらず、警告が出なかったのでまだ有効だと思っていたのですが、実はremove関数は将来的に削除される事が決まっており使用非推薦になっていました。removeだけでなくget/set/clearも将来的に削除される模様です。


storage.liveと同じ方法で値の格納や変更・削除を行うのが正しいやり方になりました。
storage.simpleはjson形式でFirefoxのプロファイルディレクトリ直下のjetpackディレクトリ内に「simple.json」という名前で保存されています。
デフォルトでは5分間隔でファイルに書き出されるようですが、コード中で好きなタイミングで同期を取ることが可能です。
jetpackの環境のリロード時や終了時には自動的に書き出されます。

jetpack.future.import("storage.simple");

var storage = jetpack.storage.simple;

//Key「hoge」に配列形式で保存
//storage.hoge = "fuga";
//のようにも保存可能
storage.hoge = ["fuga","piyo"];

//Key「hoge」で保存されている配列に対して処理
storage.hoge.forEach(function(e){console.log(e);});

//変更
storage.hoge = ["fuga","piyopiyo"];
//強制的に同期
storage.sync();

//削除
delete storage.hoge;
//ファイルに書き出さなくても削除すると即座にそのKeyは消える
storage.sync();

とこんな感じです。


ファイルには

{"hoge":["fuga","piyoyoyo"],"foga":[1,2]}

の様に保存されます。


jetpackは機能拡充が頻繁なので、ソースを読んだほうが確実です。