Web Storageの基本

Web Storageの基本

前述したように、現状ではHTML5関係のデータベースAPIは3種類あります。今回は、それらの中で最も簡単な「Web Storage」を取り上げて、その基本的な使い方を紹介します。Web Storageはシンプルなキーバリュー型データベースで、あまり複雑ではない情報を保存しておくのに適しています。

また、Web Storageは「Local Storage」と「Session Storage」の2つに分けられます。Local Storageは、Webブラウザを終了してもデータを残しておいて、次回に再利用できるようにする時に使います。一方のSession Storageは、セッション内で一時的にデータを保存しておきたい時に使います。

上記のようなことから、Web Storageは機能的にはCookieに近いです。ただし、以下の点が異なります。

  1. 容量制限は明示されていません(ただし、莫大なデータを保存して、Webブラウザ等をクラッシュさせるような攻撃を避けるために、W3Cのドキュメントには「Webブラウザ側で容量を制限するべき」と書かれていませす)。
  2. Web Storageのうち、Local Storageにはデータの保存期限はありません(明示的にクリアしない限りはずっと保存され続けます)。
  3. サーバーに送信されません。

なお、アクセスできるWeb Storageは、セキュリティの関係で、オリジン(ホスト+ドメイン+ポート)が同じWebページに属するものだけです。例えば、「www.foo.com」に属するページで作成したWeb Storageには、「blog.foo.com」に属するページからはアクセスすることはできません。

Web Storageにアクセスする

それでは、Web Storageにアクセスする具体的なプログラムの書き方を紹介しましょう。Local Storageに値を保存するには、以下のような書き方をします。

localStorage.キー = 値;

例えば、「foo」というキーで、「bar」という文字列を保存したい場合は、以下のように書きます。

上記の他、以下のように書くこともできます。

また、保存した値は、以下のいずれかの書き方で表すことができます。

例えば、上で挙げたキーが「foo」の要素の値を、変数valに代入するには、以下のように書きます。

Session Storageにアクセスする方法も、Local Storageとほぼ同じです。ただし、「localStorage」の代わりに「sessionStorage」と書きます。

なお、本稿執筆時点でのWeb StorageのEditor's Draft(2010年9月25日)では、「値としては単一の数値や文字列だけでなく、任意のデータを保存することもできる」と書かれています。

例えば、表1のようなオブジェクトを、「account」というキーの要素に保存する場合だと、以下のように書きます。

ただし、本稿執筆時点のWebブラウザでは、上記の書き方をしても正しく動作せず、オブジェクトを文字列に変換した結果が保存されます(「[object Object]」の文字列等に変換されます)。初期のWeb Storageの仕様では、「キー/値ともに文字列」と規定されていたため、このような動作になっている模様です。

プロパティ値
userfoo
passwordbar

表1:オブジェクトの例

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30