クライアントサイドストレージ – Web Storageについて
クライアントサイドストレージのWeb Storageについて、実際に試してみます。
前回の投稿でも書きましたが、Web Storageは「localStorage」と「sessionStorage」から構成されています。
両方ともStorageオブジェクトを参照し、Storageオブジェクトは「キーと値の組み合わせ」の連想配列でデータを保持します。
sessionStorageとlocalStorageの違いは、
有効期限 スコープ
が違います。
また、データ保存容量は5MBまでです。(ブラウザにより異なるので注意が必要です)
実際にサンプルのコードを書いて試してみます。
以下のソースを用意しました。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>テストHTML</title>
</head>
<body>
<div id="result"></div>
<script type="text/javascript">
// ローカルストレージのキー「test1」に値「テストA」を更新
localStorage.test1 = "テストA";
// ローカルストレージの値(ここでは「test1」を呼び出す)
let test_value = localStorage.test1;
// 値の確認用DOMの取得
let result = document.getElementById("result");
// 画面に出力して確認
result.innerHTML += 'ローカルストレージの値 -> ' + test_value + '<br />';
</script>
</body>
</html>
画面にアクセスすると、

と表示され、ローカルストレージに更新した値が確認できます。
また、開発者ツールのApplicationからLocal Storageに保存されているキーと値を確認できます。
上記サンプルにアクセスした場合、以下のように確認できます。

保存の方法は
localStorage.test1 = "テストA";
のように書きましたが、
windows.localStorage.setItem("test1", "テストA");
のように、localStorageのメソッドを使って更新する方法もあります。読み込みは「getItem(“test1”)」です。
ここで、上記のHTML(javascript)とは別のHTMLを作り、そこから localStorage に更新した キー test1 の値を呼び出してみます。
以下のHTMLを用意しました。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>テストHTML</title>
</head>
<body>
<div id="result"></div>
<script type="text/javascript">
// ローカルストレージの値(ここでは「test1」を呼び出す)
let test_value = localStorage.test1;
// 値の確認用DOMの取得
let result = document.getElementById("result");
// 画面に出力して確認
result.innerHTML += '別画面で登録したローカルストレージの値 -> ' + test_value + '<br />';
</script>
</body>
</html>
画面にアクセスすると、以下の表示になります。

また、開発者ツールを格納すると、以下の表示になります。

別画面で更新した値を保持していることがわかり、別なウィンドウを開いてアクセスしても同様の画面になり、値が保持されていることがわかります。
上記の動きは「localStorage」と「sessionStorage」両方とも同様の動きをします。
保存が可能なデータについて
「localStorage」と「sessionStorage」では、保存できるデータの種類があります。
上記サンプルのように、単純な文字列の他、オブジェクト、配列、も保存できます。