JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

ブラウザのウィンドウやタブを閉じたときにlocalStorageのデータを削除する方法

localStorageは自動的には消えない

localStorageに保存されたデータは、明示的に削除しない限りブラウザ内に残り続けます。そのため、「タブやウィンドウを閉じたらデータも消したい」というケースでは、何らかの仕組みを自分で実装する必要があります。

window.onunloadイベントを使う方法

タブやウィンドウが閉じられるタイミングを検知するには、window.onunloadイベントを利用します。

ここでは例として、グローバルなストレージオブジェクトとして「MyStorage」が存在するものとします。次のようにイベントハンドラを記述できます。

window.onunload = () => {  // ローカルストレージをクリア  window.MyStorage.clear()}

このコードにより、タブまたはウィンドウが閉じられた時点でローカルストレージのデータがクリアされます。

より確実な代替手段:sessionStorage

「タブを閉じたらデータを消したい」という要件だけであれば、最初からsessionStorageを使うのが最もシンプルで確実です。sessionStorageに保存したデータは、タブやウィンドウを閉じると自動的に削除されるためです。

// データの保存sessionStorage.setItem('key', 'value');// データの取得const value = sessionStorage.getItem('key');// データの削除sessionStorage.removeItem('key');

localStorageとの主な違いは保存期間のみなので、APIの使い方はほぼ同じ感覚で扱えます。

実装時の注意点

unloadイベントは、ブラウザのクラッシュやモバイル環境のアプリ終了など、すべての状況で必ず発火するとは限りません。また、ページの再読み込みでも発火してしまうため、「リロードではデータを残したい」場合には工夫が必要です。

そのため、セッション単位でデータを管理したい場合は、unloadイベントに頼るよりもsessionStorageの活用を検討するのがおすすめです。

  1. 閉じたタブを復元する方法!Chrome・Firefox・Edgeなど主要ブラウザ別の完全ガイド

    誰もが一度は経験したことがあるのではないでしょうか。個人的なプロジェクトや仕事、純粋な興味本位で、役立つ情報がたくさん詰まった魅力的なウェブサイトを見つけたのに、調べている最中に新しいタブを開いた拍子に、うっかり別のタブを閉じてしまう——せっかく見つけた大切なページが消えてしまった、あの絶望感。かつてはこのようなミスを取り返す手段がなく、非常にストレスでしたが、今ではGoogle Chrome、Firefox、Opera、Microsoft Edgeなど、ほぼすべての主要ブラウザで閉じたタブを復元できるようになっています。この記事では、代表的なブラウザで閉じたタブを再度開く方法を、わかりやすく

  2. ブラウザのCookieと閲覧履歴を削除する方法【Chrome・Edge対応】

    インターネットを利用するうえで、Webブラウザは欠かせないアプリケーションです。Google Chrome、Microsoft Edge、Mozilla Firefox、Brave、Tor、Operaなど、有名なブラウザは数多く存在します。これらのブラウザはいずれも、Cookieやキャッシュファイルをパソコン上に保存し、閲覧履歴を記録しています。このデータはページの高速表示、サイト設定の保存、ログイン情報の記憶などに役立ち、過去に訪れたページへのアクセスも容易にしてくれる便利なものです。 しかしこの便利なデータが、プライバシーの観点からはリスクにもなり得ます。ブラウザ開発企業やソフトウェア会社