ウェブストレージ

ウェブストレージ(Web storage)は、DOMストレージ (Document Object Model storage)と呼ばれることもあり、ウェブアプリケーションにクライアント側のデータを保存する方法とプロトコルを提供する。ウェブストレージは永続性のあるデータストレージをサポートするという点で HTTP cookie（クッキー）と似ているが、容量が拡大され、に情報が保存されなくなった。ウェブストレージにはローカルストレージ(local storage)とセッションストレージ(session storage)の２種類があり、それぞれとと同様にふるまう。ウェブストレージはWorld Wide Web Consortium (W3C)とWHATWGによって標準化されていて、すべての主要なブラウザーにサポートされている。
特徴.
ウェブストレージはクッキーといくつかの点で異なる。
使用法.
ウェブストレージをサポートするブラウザはwindowレベルで宣言される codice_1 と codice_2 というグローバールオブジェクトを持っている。以下のJavaScriptコードによって、これらのブラウザでウェブストレージを動作させることができる。
// セッション期限に限ってブラウザに値を保存する
sessionStorage.setItem('key', 'value');
// 値を得る (ブラウザを閉じて再度開くと消去される)
alert(sessionStorage.getItem('key'));
// セッション期間を超えてブラウザに値を保存する
localStorage.setItem('key', 'value');
// 値を得る (ブラウザを閉じて再度開いても継続する)
alert(localStorage.getItem('key'));
ストレージのAPIでは文字列のみ保存できる。他のデータ型を保存しようとすれば、多くのブラウザでは自動的に文字列に変換される。しかし、JSONに変換すれば、JavaScriptのオブジェクトを効率的に保存することができる。
// 文字列のかわりにオブジェクトを保存する
localStorage.setItem('key', {name: 'value'});
alert(typeof localStorage.getItem('key')); // string
// 文字列のかわりに整数を保存する
localStorage.setItem('key', 1);
alert(typeof localStorage.getItem('key')); // string
// JSONを使ってオブジェクトを保存する
localStorage.setItem('key', JSON.stringify({name: 'value'}));
alert(JSON.parse(localStorage.getItem('key')).name); // value
名称.
W3Cの文書は「Web Storage」というタイトルである。「DOM storage」という名称も一般的に使われていたが、あまり使われなくなってきた。たとえば、MozillaとMicrosoftの開発者サイトではDOM Storageの記事がWeb Storageの記事に書き換えられた。
DOMストレージの「DOM」は、文字通りDocument Object Modelを意味しない。 W3Cによれば、「DOMという用語は、ウェブアプリケーションのスクリプトで使用できるAPI群を指すために使用され、実際にDocumentオブジェクトが存在することを必ずしも意味しない」。
ウェブストレージの管理.
ウェブストレージオブジェクトの保存は現在のすべてのサポートするウェブブラウザでデフォルトで有効にされていて、ブラウザのベンダーごとに、ユーザーがウェブストレージを有効・無効にする方法、そしてウェブストレージの「キャッシュ」を消去する方法が提供されている。同様にウェブストレージを制御する方法は、サードパーティーのブラウザ拡張機能によっても可能である。ブラウザごとにウェブストレージのオブジェクトを保存する方法が次のように異なっている。