【javascript】cookieとlocalStorageとsessionStorageの違い

cookieの使い方はこちら
localStorageの使い方はこちら
sessionStorageの使い方はこちら

サーバーにデータを送信するかしないか

cookieではページのリクエスト(リンクを踏んで移動する時など)を送信した際に、cookieの情報もサーバーに送信される。一方localStorageとsessionStorageはサーバーに送信されないという違いがある。

容量の違い

cookieは5KB程度までしかデータを保存できないが、localStorage、sessionStorageでは利用するブラウザによって容量が違うが、およそ5MBぐらいはデータを保存できる。

有効期限の違い

cookieは有効期限を設定する事ができる。ただし、設定しなかった場合はブラウザを閉じるとデータが消去される。localStorageでは半永久的にデータが保存され、sessionStorageではそのページを開いている間だけ使用する事ができる。

アクセスできる範囲(スコープ)の違い

cookieとlocalStorageでは、別ウィンドウでも同じデータにアクセスする事ができるが、sessionStorageでは開いているウィンドウで設定したデータは、その開いているウィンドウでしかアクセスすることができない。

まとめ

cookieとlocalStorageとsessionStorageの違いを表にまとめると、下記のようになります。

種類 サーバに送信 容量 有効期限 スコープ
cookie 5KB程度 設定による 共有
localStorage × 5MB(ブラウザによる) 半永久 共有
sessionStorage × 5MB(ブラウザによる) ウィンドウ・タブを閉じるまで そのウィンドウ・タブのみ

【javascript】localStorageを使ってデータを保存してみよう

localStorageとは

localStorageとはcookieのようにクライアント側(ブラウザ)でデータを保存することができます。
cookieを使ったデータの保存方法はこちら

localStorageの操作方法

localStorageに値を保存する

localStorage.setItem( [key], [value] );

keyとvalueを引数に設定し、localStorageにkeyとvalueのセットを保存します。

localStorageからデータを取得する

localStorage.getItem( [key] );

keyを引数に設定し、指定されたkeyでlocalStorageに保存した値を取得します。

localStorageに登録されているセットを削除する

localStorage.removeItem( [key] );

keyを引数に設定し、指定されたkeyをlocalStorageから削除します。

サンプル

localStorageに値をセットしたり削除したりするサンプル

サンプルコード

window.addEventListener( 'load', function( ){
    var key214 = document.querySelector( '#key-214' );
    var value214 = document.querySelector( '#value-214' );
    var setBtn214 = document.querySelector( '#set-btn-214' );
    var removeBtn214 = document.querySelector( '#remove-btn-214' );
    var localStorage214 = document.querySelector( '#localStorage-214' );
    displayLocalStorage();

    setBtn214.addEventListener( 'click', handleSetBtnClick, false );
    function handleSetBtnClick( e ){
        var key = key214.value;
        var value = value214.value;
        if( key ){
            localStorage.setItem( key, value );
            displayLocalStorage();
        }
    }

    removeBtn214.addEventListener( 'click', handleRemoveBtnClick, false );
    function handleRemoveBtnClick( e ){
        var key = key214.value;
        localStorage.removeItem( key );
        displayLocalStorage();
    }

    function displayLocalStorage( ){
        localStorage214.innerText  = "";
        for( var i = 0; i < localStorage.length; i++ ){
            if( i > 0 )
                localStorage214.innerText += ", ";

            var key = localStorage.key( i );
            localStorage214.innerText += key + ":" + localStorage.getItem( key );
        }
    }
} );

下のテキストボックスの「keyの値」と「valueの値」何か入力し、「setItem」ボタンを押すと入力したデータを保存する。
「keyの値」に登録されているkeyを入力し、「removeItem」ボタンを押すとkeyに対応するデータを削除する。
keyの値:
valueの値:


現在のlocalStorage: