ラベル Web Storage の投稿を表示しています。 すべての投稿を表示
ラベル Web Storage の投稿を表示しています。 すべての投稿を表示

2010年6月8日火曜日

HTML5 のWeb Storageを使ってみた

今回は、ローカルストレージと、セッションストレージを使ってみました!

■ローカルストレージ
下記のような 簡単なサンプルを作りました。
storeにて値の登録を行います。そうすると、store dateに登録されている一覧が表示されます。
さらに追加で登録を行うと、下記のようになります。


ローカルストレージのサンプル


・ソース
JavaのHashMapに値を格納するような感覚で使えます!
前回記述した通り、格納した値は消してあげないと消えません。
同一オリジン、同一ブラウザでなら、消されるまで値が保持されます。


■セッションストレージ
セッションストレージのサンプル
キャプチャ的には同じなので貼りません^_^;
基本的には、ローカルストレージのlocalstorageをsessionstorageに置換してあげれば使えます!
API的にも同じものが用意されています!

ただし!
前回説明した通り、別ウィンドウを開くと値はコピーされますが、
その瞬間だけ値が同じなだけでどちらかで更新してももう一方には反映されません!
上記のサンプルにて、試せるようにしてあるので実際に試してみてください。

こちらは、ウィンドウを閉じれば保持していた値は消えるので、特に気になるところはないな。
使い道は、、、別ウィンドウを開くときにパラメータとして渡したいってときぐらいしか使わないか?
渡せるけど、その画面から情報は受け取れないけどねw

■いちおうAPIを書いておきます
・メソッドについて

メソッド解説
lengthストレージ内に格納されているデータ数
key(index)指定されたインデックスのKeyを返す。存在しない場合はnullが返る
getItem(key)指定されたKeyに対応する値を返す
setItem(key, data)ストレージに指定したKey値で値を登録する
removeItem(key)ストレージから指定されたKey値に対応するデータを削除する
clear()すべてのデータをストレージから削除する

・storageイベントのプロパティについて

プロパティ解説
key変更されたKey。clear()メソッドが呼ばれた際にnull
oldValue変更前の値(のコピー)。新しいキーで値が登録された場合はnull。
newValue変更後の値(のコピー)。値が削除された場合にはnull。
urlイベント発生元のドキュメントURL。
storageArea変更されたストレージへの参照。
使い方
なぜか、イベントで処理をするとブラウザがクラッシュすることがありますので、気をつけてください。
使い方が悪いのか?それともブラウザがまだちゃんと対応されていないのか?

2010年6月7日月曜日

HTML5のWeb Storageを使ってみる前に軽くまとめてみた

■Web Storageとは
Web Storageとは、クライアントのディスクにデータを保存出来る仕組みです。
Web Storageは単純な”キー・バリュー”ストレージで、キーは文字列、バリューは任意のJavaScriptオブジェクトとなります。

■Web StorageとCookieの違い
Web Storageと似ている機能に、Cookieがあります。
違いをまとめておきます。

CookieWebStorage
サイズ制限1サイト4KBなし
HTTPリクエストHTTPリクエストに自動的に付加され送信される付加されない
有効期限指定できる指定できない
JavaScriptオブジェクト格納できない格納できる

■Web Storageの種類
Web Storageには、ローカルストレージセッションストレージが存在します。

-ローカルストレージ
Webサイト毎に使用できる、永続化領域の事で永続期間は無制限です。
同一ブラウザ、同一オリジン(プロトコル+ドメイン + ポート番号)にて、共有することができます。

-セッションストレージ
基本的にはローカルストレージと同じ。
ただし、有効範囲と生存期間がwindowオブジェクトと同じになっている。
ウィンドウを閉じられるとセッションストレージ内のデータは削除されます。(再読み込みなら削除されない)
ウィンドウから、別のウィンドウを開いた場合は、ストレージの内容がコピーされて渡されます。
コピーなので、別ウィンドウで書き換えても元のウィンドウには反映されません。逆も同じくコピーされません。