HTML5とともにW3Cで標準化が進められているDOM APIの1つに「Web Storage」があります。Web StorageはCookieと同様にローカルディスク上にデータを保存する機能で、Cookieに比べて「有効期限がない」「データサイズの制限がない」といった特徴があります。ローカル上に永続的にデータを保存できるので、フォームの入力内容の保存やゲームのプレイ履歴の記録、各種サービスの状態保存など、などさまざまな用途に利用できます。
Web Storageにはローカルストレージとセッションストレージがあり、永続的にデータを保存する場合はローカルストレージを、ブラウザーを開いている間の一時的な保存であればセッションストレージを使います。ローカルストレージ、セッションストレージとも同じメソッドを持ち、記述方法に違いはありません。
今回のJavaScriptラボは、HTMLフォームに入力した内容を自動的に保存/読み込むサンプルを作りながら、Web Storageの使い方を解説します。また、応用編として、本連載で以前に作成した「シンプルペイント」(HTML5 Canvasを使ったお絵かきスクリプト)を拡張し、ペンの色やサイズなどの状態を保存する機能を作成します。どちらも永続的にデータをローカルディスクに保存するので、ローカルストレージを使います。