Web StorageのセッションStorageとlocalStorage
3698 ワード
html 5のWeb Storageには、sessionStorageとlocalStorageの2つのストレージ方式が含まれています.
sessionStorageは、同じセッション内のページにのみアクセスでき、セッションが終了するとデータも破棄されるセッション内のデータをローカルに格納するために使用されます.したがって、sessionStorageは永続的なローカルストレージではなく、セッションレベルのストレージにすぎません.
一方、localStorageは、データをアクティブに削除しない限り、永続化されたローカルストレージに使用されます.データは期限切れになりません.
web storageとクッキーの違い
Web Storageの概念はクッキーと似ていますが、違いは、より大きな容量のストレージのために設計されていることです.Cookieのサイズは制限されており、新しいページを要求するたびにCookieが送信されます.これにより、帯域幅が無形に浪費されます.また、cookieは役割ドメインを指定する必要があります.ドメイン間で呼び出すことはできません.
このほか、Web StorageにはsettItem、getItem、removeItem、clearなどの方法があり、クッキーのようにフロントエンド開発者がsetCookie、getCookieを自分でカプセル化する必要はありません.
ただし、Cookieも欠かせません.Cookieの役割はサーバとのインタラクションであり、HTTP仕様の一部として存在しますが、Web Storageはローカルでデータを「格納」するためだけに生成されます(@otakustayからの修正)
html 5 web storageのブラウザサポート状況
ブラウザのサポートはIE 7以下がサポートされていないほか、他の標準ブラウザは完全にサポートされている(ieおよびFFはwebサーバで実行する必要がある).IEはいつも良いことをしている.例えば、IE 7、IE 6のUserDataはjavascriptローカルストレージのソリューションである.簡単なコードパッケージにより、すべてのブラウザがweb storageをサポートするように統一できます.
ブラウザがlocalStorageをサポートしているかどうかを判断するには、次のコードを使用します.
localStorageおよびsessionStorageアクション
localStorageとsessionStorageは、setItem、getItem、removeItemなど、同じ操作方法を有します.
localStorageとsessionStorageの方法
setItem格納value
用途:valueをkeyフィールドに格納する使い方:.setItem(key,value)コードの例:
getItem valueの取得
用途:指定keyローカルに格納された値の使用法を取得する:.getItem(key)コードの例:
removeItem削除key
用途:指定keyローカルに格納されている値の使用法を削除する:.removeItem(key)コードの例:
クリアすべてのkey/valueをクリア
用途:すべてのkey/value用法をクリアする:.clear()コードの例:
その他の操作方法:ポイント操作と[]
web Storageは、自身のsetItem、getItemなどでアクセスしやすいだけでなく、普通のオブジェクトのようにポイント(.)を使うこともできます.オペレータ、および[]は、次のコードのようにデータを格納します.
localStorageとsessionStorageのkeyとlengthプロパティの遍歴
sessionStorageおよびlocalStorageが提供するkey()およびlengthは、次のコードのような格納されたデータの遍歴を容易に実現することができる.
storageイベント
storageはstorageイベントも提供し、キー値が変更されたりclearされたりすると、storageイベントをトリガーすることができます.次のコードのようにstorageイベントの変更のリスニングが追加されます.
storageイベントオブジェクトの具体的なプロパティは、次の表に示します.
Property
Type
Description
key
String
The named key that was added, removed, or moddified
oldValue
Any
The previous value(now overwritten), or null if a new item was added
newValue
Any
The new value, or null if an item was added
url/uri
String
The page that called the method that triggered this change
sessionStorageは、同じセッション内のページにのみアクセスでき、セッションが終了するとデータも破棄されるセッション内のデータをローカルに格納するために使用されます.したがって、sessionStorageは永続的なローカルストレージではなく、セッションレベルのストレージにすぎません.
一方、localStorageは、データをアクティブに削除しない限り、永続化されたローカルストレージに使用されます.データは期限切れになりません.
web storageとクッキーの違い
Web Storageの概念はクッキーと似ていますが、違いは、より大きな容量のストレージのために設計されていることです.Cookieのサイズは制限されており、新しいページを要求するたびにCookieが送信されます.これにより、帯域幅が無形に浪費されます.また、cookieは役割ドメインを指定する必要があります.ドメイン間で呼び出すことはできません.
このほか、Web StorageにはsettItem、getItem、removeItem、clearなどの方法があり、クッキーのようにフロントエンド開発者がsetCookie、getCookieを自分でカプセル化する必要はありません.
ただし、Cookieも欠かせません.Cookieの役割はサーバとのインタラクションであり、HTTP仕様の一部として存在しますが、Web Storageはローカルでデータを「格納」するためだけに生成されます(@otakustayからの修正)
html 5 web storageのブラウザサポート状況
ブラウザのサポートはIE 7以下がサポートされていないほか、他の標準ブラウザは完全にサポートされている(ieおよびFFはwebサーバで実行する必要がある).IEはいつも良いことをしている.例えば、IE 7、IE 6のUserDataはjavascriptローカルストレージのソリューションである.簡単なコードパッケージにより、すべてのブラウザがweb storageをサポートするように統一できます.
ブラウザがlocalStorageをサポートしているかどうかを判断するには、次のコードを使用します.
if(window.localStorage){ alert(" localStorage") }else{ alert(" localStorage") } // if(typeof window.localStorage == 'undefined'){ alert(" localStorage") }
localStorageおよびsessionStorageアクション
localStorageとsessionStorageは、setItem、getItem、removeItemなど、同じ操作方法を有します.
localStorageとsessionStorageの方法
setItem格納value
用途:valueをkeyフィールドに格納する使い方:.setItem(key,value)コードの例:
sessionStorage.setItem("key", "value"); localStorage.setItem("site", "js8.in");
getItem valueの取得
用途:指定keyローカルに格納された値の使用法を取得する:.getItem(key)コードの例:
var value = sessionStorage.getItem("key"); var site = localStorage.getItem("site");
removeItem削除key
用途:指定keyローカルに格納されている値の使用法を削除する:.removeItem(key)コードの例:
sessionStorage.removeItem("key"); localStorage.removeItem("site");
クリアすべてのkey/valueをクリア
用途:すべてのkey/value用法をクリアする:.clear()コードの例:
sessionStorage.clear(); localStorage.clear();
その他の操作方法:ポイント操作と[]
web Storageは、自身のsetItem、getItemなどでアクセスしやすいだけでなく、普通のオブジェクトのようにポイント(.)を使うこともできます.オペレータ、および[]は、次のコードのようにデータを格納します.
var storage = window.localStorage; storage.key1 = "hello"; storage["key2"] = "world"; console.log(storage.key1); console.log(storage["key2"]);
localStorageとsessionStorageのkeyとlengthプロパティの遍歴
sessionStorageおよびlocalStorageが提供するkey()およびlengthは、次のコードのような格納されたデータの遍歴を容易に実現することができる.
var storage = window.localStorage; for (var i=0, len = storage.length; i < len; i++){ var key = storage.key(i); var value = storage.getItem(key); console.log(key + "=" + value); }
storageイベント
storageはstorageイベントも提供し、キー値が変更されたりclearされたりすると、storageイベントをトリガーすることができます.次のコードのようにstorageイベントの変更のリスニングが追加されます.
if(window.addEventListener){ window.addEventListener("storage",handle_storage,false); }else if(window.attachEvent){ window.attachEvent("onstorage",handle_storage); } function handle_storage(e){ if(!e){e=window.event;} }
storageイベントオブジェクトの具体的なプロパティは、次の表に示します.
Property
Type
Description
key
String
The named key that was added, removed, or moddified
oldValue
Any
The previous value(now overwritten), or null if a new item was added
newValue
Any
The new value, or null if an item was added
url/uri
String
The page that called the method that triggered this change