このサイトは、只今WEB業界で活躍中のデザイナー、プログラマーの方々の情報を集めたweb統合情報サイトです。

Archives Details

HTML5 Webストレージでデータを保存

HTML5

2013.01.20

この記事は最終更新日から1年以上が経過しています。

HTML5で利用可能となったAPIで「Web Storage(Webストレージ)」と呼ばれるものがあります。

Webストレージはクライアント側にデータを保存したり読み出しを出来るようにする仕組みとなっております。

保存期間の異なる2種類のWebストレージ

Webストレージには以下の2種類があります。

※ローカルストレージ(localStorage)

※セッションストレージ(sessinStorage)

ローカルストレージはクライアント側に保存したデータを明示的に削除するまで永続的に保存します。

セッションストレージはデータ保存(保存するコードを実行)を行ったWebブラウザが開いている間だけ、一時的に保存することができます。

ローカルストレージは明示的に削除するまで永続的に保存なので、Webブラウザを閉じてり、OS再起動を行ってもデータは残されています。

セッションストレージはデータを保存したページ(webサイト)から移動してもデータは残されていますが、

Webブラウザを閉じると自動的にデータは削除されます。

タブで開くWebブラウザの場合、データ保存を行ったページのタブを閉じるとセッションは途切れ、

保存したデータは消えてしまいます。

一つのタブがwebブラウザに当たりますので、タブ間のセッションストレージの情報は共有されないことになります。

Webストレージに保存できるサイズ

Webストレージに保存出来るサイズはブラウザの実装に依存しております。

W3Cでは最低5Mバイトを推奨しています。

Webストレージではドメイン単位(厳密にはオリジン(プロトコル+ドメイン+ポート番号)単位)のデータ管理を行っています。

この5Mバイトは1ドメイン当たりのデータの合計の上限となりますので、

WebサイトのTopページとそのサイトの別ページでそれぞれ個別にWebストレージを利用した場合、

その合計が5Mバイト以内ではないといけません。

データの保存方法

Webストレージには、「キー名」と「値」のペアでデータを保存します。

よって、サイト内で、複数のキーに対してそれぞれのデータを保存することが可能となっております。

例としてwebのテストの点数をWebストレージで管理する場合、

HTMLというキーに対して90という値を、HTML5というキーに対して30という値を対応付けてデータを保存した場合、

HTMLと指定すれば90、HTML5と指定すれば30と返してくれます。

JSONやXMLなどでデータを複数保存を行ったりすることも可能となっております。

「web帳」というキーに対して

{
  "HTML":"90",
  "HTML5":"30",
  "CSS3":"84",
  "Javascript":"45"
}

getItemとsetItem

Webストレージに保存するデータは全て「キー」で管理します。

データを取り出す場合はgetItemを使用、保存する場合はsetItemを使用します。

ローカルストレージ

変数 = localStorage.getItem(“キー名”);

localStorage.setItem(“キー名”, 値);

セッションストレージ

変数 = sessionStorage.getItem(“キー名”);

sessionStorage.setItem(“キー名”, 値);

取り出す場合は”キー名”を指定、保存する場合は”キー名”,”値”で保存を行います。

その他のプロパティとメソッド

 
名前 機能
length 保存されているキー数(データの数)を参照 hoge = localStorage.length;
key(n) 保存しているn番目のキー名を返す。 hoge = localStorage.key(1);
clear() そのドメインで使用されている
ストレージのデータをすべて削除。(引数なし)
localStorage.clear();
removeItem(“キー名”) 引数で与えられたキー名のデータを削除 localStorage.removeItem(“foo”);

テスト

webストレージのテストページを作成しました。

ポチポチすると、回数が増えていきます。

通算のポチポチには「ローカルストレージ」を設定。

今回のポチポチには「セッションストレージ」を設定しております。

リセットで回数がリセットされます。

URL

http://webcyou.com/demo/js/webstorage/

ブラウザを閉じたりして確認してみてください。

記事の続き

HTML5 Webストレージでデータを保存 その2(なんちゃってソーシャルゲーム作成)

Comment

Related Article

iPhone5s,5c 発表!! という訳でAppleサイトの仕様とかについて

2013.09.15

HTML5 History APIについて

2013.02.26

FlashをCanvas等に変換 gree/LWF(Lightweight SWF)を使ってみました。その2

2013.02.11

FlashをCanvas等に変換 gree/LWF(Lightweight SWF)を使ってみました。

2013.02.11

HTML5 Webストレージでデータを保存 その6 複数保存(なんちゃってソーシャルゲーム・quest進捗、ex調整)

2013.02.10

HTML5 Webストレージでデータを保存 その5(なんちゃってソーシャルゲーム・Lv、Gold編)

2013.02.09

HTML5 Webストレージでデータを保存 その4(なんちゃってソーシャルゲーム・ゲージ)

2013.02.09

HTML5 Webストレージでデータを保存 その3(クエスト進行CSS3アニメーション)

2013.02.08

HTML5 Webストレージでデータを保存 その2(なんちゃってソーシャルゲーム作成)

2013.01.22

HTML5 Webストレージでデータを保存

2013.01.20

CATEGORY LIST

LATEST NEWS

iPad Air で、Web開発環境構築(iSH Alpine使用)

mac

2021.04.11

【Qt】Mac開発 ソートダイアログ (拡張するダイアログ)を作成

C++

2021.04.01

M1 (Appleシリコン)Macで Widowsアプリを起動

mac

2021.03.27

M1(Appleシリコン)Macで、ファミコンソフトプログラミング。 サクッと開発環境準備編

Game

2021.03.21

iPad Air 2020を購入しちゃった件。

mac

2021.03.14

眠っているラズベリーパイをネットワークオーディオ化 Volumio2 インストール手順

RaspberryPi

2021.03.12

ラズベリーパイ 5インチDSIタッチスクリーン ディスプレイを使う。

RaspberryPi

2021.01.11

今年読んで良かった書籍は、「Go言語でつくるインタプリタ」でした。

イベント

2020.12.31

【Qt】Macの、Qt Creatorで Dialog GUI作成

C++

2020.12.29

【Qt】Macで、Qt Creatorをbrew installしてサクッと起動する。

C++

2020.12.14

Macで、Qt5 開発 QPushButton、QSliderなどウィジェット作成

C++

2020.12.13

M1搭載 Mac miniをついにポチった件。Appleさんに翻弄される日々の記録。

mac

2020.12.06

RANKING

Follow

SPONSOR

現在、掲載募集中です。



Links

About Us

WEBデザイナーの、WEBデザイナーによる、WEBデザイナーの為のサイト。「みんなで書こう!」と仲間を募ってみたが、結局書くのは自分だけとなってしまいました。日々のメモを綴っていきます。

Entry Profile

Graphical FrontEnd Engineer
- Daisuke Takayama

MAD CITY 北九州市で生まれ育つ。20代はバンド活動に明け暮れ、ふと「webデザイナーになりたい。」と思い、デジタルハリウッド福岡校入学。卒業後、数々の賞を受賞、web業界をざわつかせる。
現在、主に、ゲーム制作中心に港区六本木界隈で活動中。

FOLLOW US