【JavaScript】localStorageの使い方をマスターする。(取得・保存・削除)

JavaScript

localStorageとは

local Storageとは、HTHL5から導入された「JavaScriptでブラウザにデータを記録する仕組み」のことです。

localStorageプロパティでローカルのStorageオブジェクトにアクセスすることで、データベースを使うことなくデータの保存や取得・変更などの操作を行うことができます。

localStorage に保存されたデータは永続的に保存されるため、リロードしたりタブを消してもデータは維持されたままになります。

また、localStorageにはJavaScriptから容易にアクセスできるため、セキュリティ上の観点からパスワードなどの重要な情報は保存しないように注意が必要です。

Cookie、sessionStorageとの違い

他にブラウザで情報を保存できるCookie、sessionStorageとの違いの比較表です。

localStoragesessionStorageCookie
保存容量5〜10KB5〜10KB4KB
有効期限永続セッション内任意で設定
保存される場所ブラウザブラウザブラウザとサーバー
HTTPリクエスト送信されない送信されない送信される

localStorageで保存できる容量は、Cookieに比べて多いことがわかります。

また、localStorageではデータが永続的に保存されるため、データ削除の処理を記述しない場合ずっとデータが残ることになるため考慮する必要があります。

localStorageの使い方

localStorageではkeyとvalueのセットでデータを扱います。

また、valueで保存できるデータはテキストデータのみとなるため、配列やオブジェクトなどのデータを扱いたいときはデータを変換する必要があります。

localStorageが使えるか確認する

まずはブラウザがlocalStorageを使用できるかのif文を記述して、使える場合に処理を行うように記述していきます。

if(window.localStorage) {
  // 処理
} else {
  console.log('localStorageが使えません。');
}

localStorageからデータを取得する

localStorageからデータを取得する場合は、getItem()メソッドを使用します。

引数には取得したいデータのkeyを指定しましょう。

const data = localStorage.getItem('key');

JSONデータ(文字列)を取得して、配列やオブジェクトに変換して扱うこともできます。

const data = localStorage.getItem('key');
data = JSON.parse(data);

localStorageにデータを保存する

localStorageにデータを保存する場合は、setItem()メソッドを使用します。

第一引数に保存するデータのkeyを、第二引数に保存するデータを指定しましょう。

const data = '保存するデータ';
localStorage.setItem('key', data);

配列やオブジェクトを保存したい場合は、一度JSONデータとして文字列に変換してから保存します。

const array = ['データ1', 'データ2']
const arrayText = JSON.stringify(array);
localStorage.setItem('key', arrayText);

localStorageのデータを削除する

localStorageのデータを削除する場合は、removeItem()メソッドを使用します。

引数には削除したいデータのkeyを指定しましょう。

const data = localStorage.removeItem('key');

また、clear()メソッドを使用することで、全てのデータを削除することができます。

localStorage.clear();
// ※削除されるのはドメイン下のデータのみ

LocalStorageの注意点

重要な情報を保存しない

localStorageにはJavaScriptで簡単にアクセスできるため、個人情報やパスワードなどの重要な情報を保存するのはリスクが大きすぎます。

もしそのような情報を保存したい場合には、他の方法を検討しましょう。

keyが被らないように注意する

localStorageで同じkeyに対して複数の情報を保存してしまうと、上書きされ先に保存していたデータは消えてしまいます。

開発を始めたばかりや、小さなプロジェクトでは問題ないかもしれませんが、keyが被ってしまうとバグの原因になるので十分に管理しましょう。

文字列データしか保存できない

localStorageには文字列データしか保存できません。

文字列以外のデータを保存したい場合、一度文字列に変換して保存する必要があります。(もちろんデータを使うときには文字列から変換する必要があります。)

localStorageでは、文字列以外のデータの場合は扱いが大変だという欠点があるということです。

保存できるデータ容量に制限がある

ブラウザによって多少異なりますが、localStorageに保存できるデータ容量には上限があります。

そのため、大きなデータや大量のデータを扱うアプリケーションでは考慮する必要があります。

上限内に収まる想定であれば問題ありませんが、データが大きくなってしまった時のことは考えておく必要があります。

コメント

タイトルとURLをコピーしました