HTML5のsessionStorageはHTTPセッションごとにインスタンス化されるわけではない
最近Webプログラミングを始めていますが、デスクトップアプリケーションやクラシカルなクライアント/サーバシステムと比べると、やはりクライアントサイド(Webブラウザ)ができることの制限がきついなあ、とよく感じます。
HTML5で導入されるWebSocketsやWeb Storageなんて無くて今までどうやってたんだ?ということを考えると、ActiveXやFlashなんかが流行っていた/流行っているのも、単純にリッチインタフェースのためだけじゃないんだろうな、と気づきました。
で、HTTPセッションごとに比較的大きなデータをクライアントサイドに置いておく必要ができ、調査したところHTML5のsessionStorageが使えそうだと思ったのでした。
しかしちゃんと見てみると、sessionStorageって名前とは裏腹にウィンドウが異なるとインスタンスも異なるものができてしまうんですね。通常、Webブラウザで新規ウィンドウを起動すると、それぞれのウィンドウのセッションは共有されるので、storageも共有されてほしかったのですが…
IE8 の セッション Cookie と sessionStorage - Hebikuzure's Tech Memo にこの挙動の理由についての説明が記述されていますが、要するにCookieと同じスコープだと問題あるから実際の用途に合わせて変えました、ということでしょうか。う~ん、私がほしいのはCookieと同じスコープでなおかつ大容量が保存できるものなのですが。
そういえば昔のIEはアイコンをクリックしてウィンドウを起動すると別セッション、メニューから新規ウィンドウを起動するとセッション共有、という動作だと思ったのですが、IE8ではメニューから明示的に”新規セッション”を選ばない限りはセッションが共有されるようになったのですね。以前よりは挙動が明確になって良くなったのではないかと思います。
« WZR-HP-AG300HはIEを使って操作した方が良いのかも | トップページ | サーバ復旧しました、が、 »
この記事へのコメントは終了しました。
コメント