クライアントサイドストレージ – Web Storageについて

javascript

クライアントサイドストレージ – 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>

サーバ上のHTMLはこちら(test1.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>

サーバ上のHTMLはこちら(test2.html)

画面にアクセスすると、以下の表示になります。

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

別画面で更新した値を保持していることがわかり、別なウィンドウを開いてアクセスしても同様の画面になり、値が保持されていることがわかります。

上記の動きは「localStorage」と「sessionStorage」両方とも同様の動きをします。

保存が可能なデータについて

「localStorage」と「sessionStorage」では、保存できるデータの種類があります。

上記サンプルのように、単純な文字列の他、オブジェクト、配列、も保存できます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です