localStorage と sessionStorage
適切なデータ保持期間のストレージを選びます。
「localStorage と sessionStorage」はCoddyKit上の無料JavaScript Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはJavaScript Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 JavaScript Academyコースには全4レッスンが含まれています。
2 つのストア、同じ API
localStorage と sessionStorage は同じメソッドを共有します。違いは存続期間、つまりデータがどれだけ長く残るかです。
localStorage は永続化される
localStorage のデータは明示的に削除するまで残ります。ページの再読み込み、タブの閉じる操作、ブラウザーの再起動を行っても保持されます。
localStorage.setItem("theme", "dark");
// Still there days later, after closing the browsersessionStorage は一時的
sessionStorage のデータはタブのセッション中だけ保持されます。タブを閉じると消去されます。
sessionStorage.setItem("step", "2");
// Gone once the tab is closedタブごとの分離
ブラウザーの各タブには、それぞれ独自の sessionStorage があります。同じサイトを開いた 2 つのタブでも、セッションストアは別々で、データを共有しません。
localStorage は共有される
一方、同じオリジンのすべてのタブとウィンドウは、1 つの localStorage を共有します。あるタブで書き込んだ内容は、他のタブからも確認できます。
再読み込み時の動作
通常の再読み込みでは、そのタブの sessionStorage は保持されます。タブを複製するとセッションがコピーされる場合がありますが、新しいタブを開くと空の状態から始まります。
sessionStorage.setItem("draft", text);
// Survives F5 reload in the same tab使い分け
長期間保持する設定(テーマ、言語)には localStorage を使用します。一時的なタブ単位の状態(ウィザードのステップ、一度きりのフォーム下書き)には sessionStorage を使用します。
セキュリティ上の注意
どちらのストアも安全ではありません。ページ上のあらゆるスクリプトから読み取れるため、パスワードや、非公開にしておく必要がある機密トークンは決して保存しないでください。
どちらも同じメソッド
API が同じなので、オブジェクト名だけを変更して一方を他方に置き換えられます。一方を対象に書いたコードは、もう一方でも動作します。
const store = useSession ? sessionStorage : localStorage;
store.setItem("k", "v");プライベートブラウジング
プライベートモードやシークレットモードでは、通常、どちらのストアもセッション終了時に消去され、ブラウザーによっては使用が制限または無効化されます。書き込みに失敗する可能性を常に考慮してください。
try {
localStorage.setItem("k", "v");
} catch (e) {
console.log("storage unavailable");
}クォータは別々
各ストアには独自のクォータがあります(通常はオリジンごとに約 5MB)。sessionStorage をいっぱいにしても、localStorage の容量は消費しません。
クイックチェック
2 つのストアを比較します。
まとめ
どちらのストアも同じ API を共有しますが、存続期間が異なります。localStorage はセッションをまたいで保持され、同じオリジンのすべてのタブで共有されます。一方、sessionStorage は 1 つのタブのセッション中だけ存在し、タブごとに分離されます。どちらも安全ではなく、それぞれに約 5MB の独自クォータがあります。
よくある質問
「localStorage と sessionStorage」レッスンは無料ですか?
はい。「localStorage と sessionStorage」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、JavaScript Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 JavaScript Academyコースには全4レッスンが含まれています。
「localStorage と sessionStorage」で何を学びますか?
適切なデータ保持期間のストレージを選びます。 ブラウザで直接実行するハンズオンコードでJavaScript Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
JavaScript Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのJavaScript Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。
「localStorage と sessionStorage」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このJavaScript Academyレッスンでコードを書いて実行できますか?
はい。すべてのJavaScript Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- データを保存して読み取る
- localStorage と sessionStorage
- JSON でオブジェクトを保存する
- Storage イベントと容量制限