PCにデータを保存する

こんにちは、宗定洋平(@yoheiMune)です。HTML5でどんな事が出来るんだろうと、HTML5の可能性に魅了されてるエンジニアです。
今日はHTML5のLocalStorage機能を触ってみたので、その結果と感想をブログに残したいと思います。

http://html5learner.appspot.com/html/localstorage/localStorage1.html


LocalStorage機能とは?

LocalStorage機能とは、ブラウザからPCにデータを保存出来る機能です。昔からCokkieを利用してPCにブラウザ上のデータが保存出来る技術はありましたが、より自由にそして簡単にPCへデータを保存出来るようになりました。

LocalStorageは何が良いの?

LocalStorage機能のおかげで、WebアプリケーションやWebページは、データの保存場所をサーバーとクライアントのどちらでも好きに選択出来ます。サーバーに送る必要の無い情報はクライアントに保存する。そうする事で通信量を減らし、より速いWebページへ進化する事ができます。

LocalStorageの利用例は?

例えば、Webページにおいてユーザーの画面設定情報をPCに保存しておき、次に画面を開いたときにすぐにその設定情報を画面に反映する。
例えば、ブログなどの大量の文字を入力するサイトで、一定期間ごとにPCへデータを保存することで、間違ってブラウザを閉じても保存しておいたデータから復元できる。
など色々と便利な使い方ができそうです。


LocalStorageの実装方法

LocalStoraegeを使って実装してみたいという方へ、少しでも参考になればと思い、実装サンプルを載せたいと思います。JavaScriptで以下のように簡単に利用することができます。
(HTML)

<table>
  <tr>
    <td>Name:</td><td><input type="text" id="inputName" /></td>
  </tr>
  <tr>
    <td>Memo:</td>
    <td><input type="text" id="inputMemo" /></td>
  </tr>
</table>
<button id="store">保存する</button>
<button id="restore">保存していた内容を読み込む</button>

(JavaScript)

// store data, when the button is clicked.
document.getElementById("store").addEventListener("click", function () {
  window.localStorage.setItem("name", document.getElementById("inputName").value);	
window.localStorage.setItem("memo", document.getElementById("inputMemo").value);	
}, true);
	
// read data from localStorage, when the button is clicked.
document.getElementById("restore").addEventListener("click", function () {
  document.getElementById("inputName").value = window.localStorage.getItem("name") || "";
  document.getElementById("inputMemo").value = window.localStorage.getItem("memo") || "";
}, true);

・「window.localStorage.setItem(Key , Value)」でデータを保存します。
・「window.localStorage.getItem(Key)」でデータを読み取ります。


LocalStorageで保存したデータが利用出来る範囲

LocalStorageにてデータを保存した場合、同一の「プロトコルドメイン+ポート」のURLのページから読み出しをすることができます。例えば、「http://html5learner.appspot.com/html/localstorage/localStorage1.html」でデータを保存した場合。
・「http://html5learner.appspot.com/HTML5Learner.html」は読み出し可能
・「http://html5learner.appspot.com/html/canvas/LineArt.html」も読み出し可能
・「http://html5learner2.appspot.com/index.html」は読み出し不可


最後に

LocalStorage機能は使い方が簡単で、色々な用途がありそうなので、将来の可能性が大きな機能だと私は思います。エンジニアのアイデア次第で面白い、便利な機能を実現できる、そう思いました。
まだまだHTML5を頑張ろうー!!


関連エントリー