localStorageでハッシュを手間なく永続化するには

HTML5 Web SQL が期待の使い心地ではなかったため、localStorage を値の永続のために使うことにしました。

が、やはりというか、オブジェクトはそのままでは永続できません。
たとえば、[cci_JavaScript][1,2,3][/cci] は、[cci_JavaScript]”1,2,3″[/cci] という文字列に変換されてしまいます。
なので、ちょっと細工をしました。

もっとうまい方法があるかと思いますが、そいういう場合は、生温く見守るか、哀れだと思ったら、コメントを頂けると幸いです。


_set = function(key, value) {
if (typeof value == 'object') {
value = 'J' + JSON.stringify(value);
}
else {
value = (typeof value)[0] + value;
}
localStorage.setItem(key, value);
}

_get = function(key, defaultValue) {
saved = localStorage.getItem(key);
if (!saved) {
if (typeof defaultValue == 'undefined') {
return '';
}
return defaultValue;
}
type = saved[0];
value = saved.substr(1);
switch (type) {
case 'b': // boolean
return value == 'true';
case 'n': // number
return Number(value);
case 'J':
return JSON.parse(value);
default:
return value;
}
}

にほんブログ村 ライフスタイルブログ 薪ストーブ暮らしへ
にほんブログ村 ライフスタイルブログ 薪ストーブ暮らしに参加しています。 励みになりますので、足あとがわりに、ランクアップにご協力下さい。

Leave a Reply