Tips

HTML5 localStorage サンプル 【入門編 第4回】

3.全件検索処理

/* id="showAll" と設定してあるボタンを押下時 */
$('#showAll').click(function(){
	/* リスト部分をクリア */
	$('#list').html('');
	$.each(localStorage, function(idx){
		/* indexからキーを取得 */
		var key	= localStorage.key(idx);
		/* キーから値(JSONへパースします)を取得 */
		var out	= JSON.parse(localStorage.getItem(key));
		var cont = out.content.replace(/rn|(n|r)/g, '<br />');
		var el	= $('<li>').html(
			'[' + out.date + ']&nbsp;<strong>' +
			out.title + '</strong><br/>' +
			cont +
			'<br/>登録日(' +
			out.postDate + ')'
		);
			/* リストに追加 */
		$('#list').append(el);
	});
});

キー指定検索に比較部分がなくなったものです。
indexedDBでは、レンジを作成しストアより取得するものだった為、少し複雑でしたが、localStorageでは検索部分は簡略化できそうです。

4.まとめ

全体的なソースコードは、indexedDBよりlocalStorageの方が短いです。
トランザクション/ストアなどの考え方もなく、key-valueでの値の保持のみなので、簡単といえば簡単です。
実装に関して簡単で、ブラウザの対応がほぼされているlocalStorageに未来を感じます。
個人的にはsqliteに期待しているのですが。

簡単にlocalStorageのメソッドを記載します。

length ストレージへ格納されてた数を取得
key(index) 項目のインデックスを指定してキーを取得
getItem(key) キーを指定して値を取得
setItem(key, data) 指定されたキーを保存
removeItem(key) 指定されたキーを削除
clear() ストレージをクリア

IE対応はかなりはまるようです。2点注意事項があります。

  1. localStorage対応バージョンでも、あらかじめ設定をONにしていないと動かない。
  2. ローカル環境ではlocalStorageが動作しない。

IE対応の6/7対応はこちらへ
Ex DOM Storage をリリースしました

HTML・CSSリファレンス 連載はこちら!

HTML・CSSリファレンス 連載目次

Recent News

Recent Tips

Tag Search