目的
- Web Storage APIの仕様を知る。
結果
Web Storege API
- Coookieを使用するよりも直感的な方法で、keyと値のペアを保存できる仕組み
- Web Storageには以下の2つの仕組みがある。
sessionStorage
localStorage
- sessionStorageと同じだが、ブラウザを閉じたり、再度開いたりしても持続される
- 有効期限がなく、Javascriptで消去したり、ブラウザキャッシュ/ローカルで保持されたデータをクリアすることで消去できる
- 保存容量は3つの中で最大
- これらの仕組みはWindow.sessionStorageやWindow.localStorageを通して使用でき、いずれかのプロパティを使用すると、
Storage
オブジェクトのインスタンスを生成して、データアイテムの保存、取り出し、削除ができる。 - 同じオリジンに対して、
sessionStorage
とlocalStorage
は、別のStorage
オブジェクトを使用する。これらは別々に制御されてい機能する。 - firefoxでは、ブラウザがクラッシュまたは再起動したとき、オリジンごとに保存されるデータ量は10MBに制限される。これは、Web Storageの使用量が多すぎて発生するメモリの問題を避けるため。
- ユーザーがサードパーティーのCookieを禁止している場合、サードパーティーのiframeからWeb Storage にアクセスできない
Web Storage インターフェース
Storage
- 特定のドメインおよびストレージの種類に対して、データの保存、取り出し、削除ができる
Window
Window
オブジェクトを、Window.sessionStorageおよび Window.localStorageという新たなプロパティで拡張する- これらは、それぞれ現在のドメインのsessionおよびlocal Storageオブジェクトへのアクセス手段を提供する
- また、保存領域が変更されると発生する、Window.onstorageイベントハンドラもある。
StorageEvent
storage
イベントは、保存領域が変更されたときにドキュメントのWindow
オブジェクトで発生する。
プライベートブラウジング/シークレットモード
- 多くのブラウザでは、プライベートブラウジングモード、シークレットモードがあり、履歴や
cookie
のようなデータを持たない。 - これらは、根本的に
Web Storage
とは互換性がない。 - ほとんどのブラウザは、Storage APIを有効にして、見かけ上機能するようにしているが、保存したデータはブラウザを閉じると消去される。
既存の保存済みデータをどうするかは、まだまだ議論中で、開発者はさまざまな実装を意識して、WebStorageAPIに依存するWebサイトを開発する際に考慮するべき。