HTML入門 | HTML5 API | Web Storage

Web Storage API

Web Storage APIは、従来のCookie(cookie)の問題点を克服するために、Webブラウザが直接データ(data)を保存できるようにする。

HTML5以前は、アプリケーションがサーバーにデータを要求するたびに、その情報をCookie(cookie)に保存していた。
しかしWeb Storageは、ユーザー側でより多くの情報を安全に保存できるようにする。
Web Storageは最低5MB以上の大きな領域を持ち、この情報は決してサーバーへ送信されない。

このWeb Storageは、オリジン(origin)ごとに1つだけ存在する。
オリジン(origin)とは、ドメイン(domain)とプロトコル(protocol)の組み合わせで構成される識別子である。
したがって、1つのオリジンに属するすべてのWebページは同じデータ(data)を保存し、同じデータにアクセスできる。

Web Storage APIをサポートする主要Webブラウザのバージョンは次のとおりである。

API ie chrome firefox safari opera
Web Storage 8.0 4.0 3.5 4.0 11.5

Web Storage対応の確認

Web Storageを使用する前に、まずユーザーのWebブラウザがこれをサポートしているかどうかを確認する必要がある。

構文

if (typeof(Storage) !== "undefined") {
    // Web Storage用のコード部分
} else {
    // Web Storageをサポートしないブラウザ向けの案内部分
}

Web Storageオブジェクト

Web Storage APIは、ユーザーがデータを保存できるように2つのオブジェクトを提供する。

  • sessionStorageオブジェクト: 1つのセッション(session)だけのためのデータを保存するオブジェクト
  • localStorageオブジェクト: 保存期限のないデータを保存できるオブジェクト

sessionStorageオブジェクト

sessionStorageオブジェクトは、1つのセッション(session)だけのためのデータを保存する。
したがって、ユーザーがブラウザタブやウィンドウを閉じると、このオブジェクトに保存されたデータは消える。

function clickCounter() {
    if(typeof(Storage) !== "undefined") {
        if (sessionStorage.clickcount) { 
            sessionStorage.clickcount = Number(sessionStorage.clickcount) + 1; 
        } else { 
            sessionStorage.clickcount = 1; 
        }
        document.getElementById("counter").innerHTML = "カウンターの現在回数は " + sessionStorage.clickcount + " です!";
    }
}

localStorageオブジェクト

localStorageオブジェクトは、保存期限のないデータを保存する。 したがって、ブラウザタブやウィンドウが閉じられたり、コンピュータを再起動したりしても、保存されたデータは消えない。

function clickCounter() {
    if(typeof(Storage) !== "undefined") {
        if (localStorage.clickcount) { 
            localStorage.clickcount = Number(localStorage.clickcount) + 1; 
        } else { 
            localStorage.clickcount = 1; 
        }
        document.getElementById("counter").innerHTML = "カウンターの現在回数は " + localStorage.clickcount + " です!";
    }
}