SlideShare a Scribd company logo
LocalStorageによる
データ保存
メモ帳アプリを作ってみよう
Copyright Ⓒ Yoshihiro Takahashi 2012 All Rights 2
localStorage
Copyright Ⓒ Yoshihiro Takahashi 2012 All Rights Reserved. 3
localStorageとは
• HTML5の関連技術として、新しい規格として標準化
• アプリ(ブラウザ)を終了しても、5MBまでのデータを
保存することができるため、オフラインでも利用可能
• 現状は文字列のみ、保存・読み込みが可能
– 配列などのオブジェクトは保存できない
• Internet Explorer 8、Mozilla Firefox、Google Chrome、
Safari、Operaなど全ての主要ブラウザの最新版で実装済
み
Copyright Ⓒ Yoshihiro Takahashi 2012 All Rights Reserved. 4
記述方法
• localStorageの値の設定(保存)
– localStorage . キー = 値
– localStorage['キー'] = 値
– localStorage.setItem('キー', 値)
• localStorageの値の取得
– localStorage.キー
– localStorage['キー']
– localStorage.getItem('キー')
• localStorageの値の削除
– delete localStorage.キー
– delete localStorage['キー']
– localStorage.removeItem('キー')
• localStorageの値の設定(保存)
– localStorage . キー = 値
– localStorage['キー'] = 値
– localStorage.setItem('キー', 値)
• localStorageの値の取得
– localStorage.キー
– localStorage['キー']
– localStorage.getItem('キー')
• localStorageの値の削除
– delete localStorage.キー
– delete localStorage['キー']
– localStorage.removeItem('キー')
記述方法
簡単に入力できる
記述を利用
記述方法
• localStorageの値の設定(保存)
– localStorage . キー = 値
• localStorageの値の取得
– localStorage.キー
• localStorageの値の削除
– delete localStorage.キー
「キー」は、変数名のルールで任意に指定できます。
「localStrage.キー」という変数だと考えると
変数と同じように利用できます
Copyright Ⓒ Yoshihiro Takahashi 2012 All Rights 7
とりあえず、簡単に
保存・取得・削除
Copyright Ⓒ Yoshihiro Takahashi 2012 All Rights 8
一人つぶやきアプリ作成
Copyright Ⓒ Yoshihiro Takahashi 2012 All Rights 9
Copyright Ⓒ Yoshihiro Takahashi 2012 All Rights 10
アプリ開発演習に向けて
複数ページコンテンツを
作成してみよう
Copyright Ⓒ Yoshihiro Takahashi 2012 All Rights Reserved. 11
一人つぶやきアプリ基本仕様
• つぶやき閲覧ページ
– 過去のつぶやきを表示
– つぶやき登録画面へ移動
– つぶやき消去
• つぶやき登録ページ
– 入力用inputタグ
– 登録ボタン
Copyright Ⓒ Yoshihiro Takahashi 2012 All Rights Reserved. 12
つぶやき登録画面作成
• 登録日時と文字を保存したい
• 複数のつぶやきを保存したい
– 配列などが利用できないので、複数の情報を
保存するのが難しい
Copyright Ⓒ Yoshihiro Takahashi 2012 All Rights Reserved. 13
つぶやき登録画面作成
• 登録日時と文字を保存したい
• 複数のつぶやきを保存したい
– 配列などが利用できないので、複数の情報を
保存するのが難しい
そんなときは・・
Copyright Ⓒ Yoshihiro Takahashi 2012 All Rights 14
JSON
Copyright Ⓒ Yoshihiro Takahashi 2012 All Rights Reserved. 15
JSONとは
• JavaScript Object Notation
– javaScriptから文字データを構造的に扱うために考え
られたデータ形式
– ダブルクォートで値などを囲む
– コロン区切りのペアを、カンマ区切りで記載
{ “date” : “1月1日”, “text” : “あけおめ”}
{ “変数” : “値”, “変数” : “値”}
Copyright Ⓒ Yoshihiro Takahashi 2012 All Rights Reserved. 16
JSONをStorageで活用
• localStorageは文字しか保存できない
でも、JavaScriptでは配列を活用したい
Copyright Ⓒ Yoshihiro Takahashi 2012 All Rights Reserved. 17
JSONをStorageで活用
• localStorageへのデータ書き込み
– 配列をJSONデータ(文字)に変換
• localStorageからデータ取得
– JSONデータ(文字)を配列に変換
– 配列に変換後、配列名.変数 としてデータ加工
JSON.stringify(配列)
JSON.parse(jsonデータ)
Copyright Ⓒ Yoshihiro Takahashi 2012 All Rights 18
配列の使い方
Copyright Ⓒ Yoshihiro Takahashi 2012 All Rights Reserved. 19
配列はいろいろ出来る
• 配列の先頭に挿入
– 配列.unshift(データ)
• 配列の後に追加
– 配列.push(データ)
詳しくはMSDNリファレンス
Copyright Ⓒ Yoshihiro Takahashi 2012 All Rights 20
警告メッセージと
確認ダイアログ
Copyright Ⓒ Yoshihiro Takahashi 2012 All Rights Reserved. 21
ダイアログ表示
• 警告メッセージ
alert(‘メッセージ');
• 確認ダイアログ
var r = confirm(‘メッセージ');
if(r){
//OK
}else{
//キャンセル
}
Copyright Ⓒ Yoshihiro Takahashi 2012 All Rights 22
HTML要素の
生成と追加
Copyright Ⓒ 2015 Yoshihiro Takahashi All Rights Reserved. 23
タグの生成方法
• タグの生成
オブジェクト名 = document.createElement(“タグ名”);
• 属性の追加
オブジェクト名.属性名 = 値;
• タグ内への文章追加
オブジェクト名. innerHTML = 値;
• タグへのCSS指定
オブジェクト名. style.プロパティ = 値;
Copyright Ⓒ 2015 Yoshihiro Takahashi All Rights Reserved. 24
タグの追加方法
• ID指定でのタグの追加
document.getElementById(“id名”).appendChild(オブジェクト名);
• タグ指定でのタグ追加
var 親オブジェクト名 =
document.getElementByTagName (“親タグ名”);
親オブジェクト名[何番目].appendChild (オブジェクト名);

More Related Content

PPTX
Dnsdist
Petko Angelov
 
PDF
Dr Tin Shwe ဥာဏ္စမ္းပေဟဠိေပါင္းခ်ဳပ္ (ဆရာ၀န္တင္ေရႊ)
san aye
 
PPTX
Cgroups, namespaces and beyond: what are containers made from?
Docker, Inc.
 
PDF
Docker 101 - from 0 to Docker in 30 minutes
Luciano Fiandesio
 
PDF
JavaScriptによるvideo audio要素のコントロール入門
Yossy Taka
 
PDF
Webデザイン入門2-HTML5 フォーム,映像再生,音声再生, CSS3, レスポンシブWebデザイン-
Yossy Taka
 
PDF
スマホアプリ開発-プロモーション・集客・サポート・広告収入-
Yossy Taka
 
PDF
Ajax非同期通信によるサーバー通信
Yossy Taka
 
Dnsdist
Petko Angelov
 
Dr Tin Shwe ဥာဏ္စမ္းပေဟဠိေပါင္းခ်ဳပ္ (ဆရာ၀န္တင္ေရႊ)
san aye
 
Cgroups, namespaces and beyond: what are containers made from?
Docker, Inc.
 
Docker 101 - from 0 to Docker in 30 minutes
Luciano Fiandesio
 
JavaScriptによるvideo audio要素のコントロール入門
Yossy Taka
 
Webデザイン入門2-HTML5 フォーム,映像再生,音声再生, CSS3, レスポンシブWebデザイン-
Yossy Taka
 
スマホアプリ開発-プロモーション・集客・サポート・広告収入-
Yossy Taka
 
Ajax非同期通信によるサーバー通信
Yossy Taka
 

Viewers also liked (20)

PDF
JavaScriptによるgoogle maps apiの使い方
Yossy Taka
 
PDF
JavaScriptのオブジェクト:Mathオブジェクト、Dateオブジェクト
Yossy Taka
 
PDF
Canvas入門01-図形描画とJS活用-
Yossy Taka
 
PDF
Javascript入門-デジタル時計を作りながらJavaScriptを学ぼう-
Yossy Taka
 
PDF
JavaScript 基礎文法のまとめ
Yossy Taka
 
PDF
Canvasでペイントアプリ作成
Yossy Taka
 
PDF
JavaScript Basic 02 jQuery
Yossy Taka
 
PDF
メディア芸術基礎 II jQuery入門
Atsushi Tadokoro
 
PPTX
2時間で学ぶjQuery
Shumpei Shiraishi
 
PPTX
jQueryで気をつけてほしいこと
良太 増子
 
PDF
WebデザイナのためのjQuery入門。
Yossy Taka
 
PDF
Webデザインの幅を広げる、jQuery【コードを記述する】 先生:保坂 庸介
schoowebcampus
 
PDF
漢は黙ってjQuery
Takuma Hanatani
 
PDF
What Makes Great Infographics
SlideShare
 
PDF
Masters of SlideShare
Kapost
 
PDF
STOP! VIEW THIS! 10-Step Checklist When Uploading to Slideshare
Empowered Presentations
 
PDF
You Suck At PowerPoint!
Jesse Desjardins - @jessedee
 
PDF
10 Ways to Win at SlideShare SEO & Presentation Optimization
Oneupweb
 
PDF
How To Get More From SlideShare - Super-Simple Tips For Content Marketing
Content Marketing Institute
 
PDF
A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...
SlideShare
 
JavaScriptによるgoogle maps apiの使い方
Yossy Taka
 
JavaScriptのオブジェクト:Mathオブジェクト、Dateオブジェクト
Yossy Taka
 
Canvas入門01-図形描画とJS活用-
Yossy Taka
 
Javascript入門-デジタル時計を作りながらJavaScriptを学ぼう-
Yossy Taka
 
JavaScript 基礎文法のまとめ
Yossy Taka
 
Canvasでペイントアプリ作成
Yossy Taka
 
JavaScript Basic 02 jQuery
Yossy Taka
 
メディア芸術基礎 II jQuery入門
Atsushi Tadokoro
 
2時間で学ぶjQuery
Shumpei Shiraishi
 
jQueryで気をつけてほしいこと
良太 増子
 
WebデザイナのためのjQuery入門。
Yossy Taka
 
Webデザインの幅を広げる、jQuery【コードを記述する】 先生:保坂 庸介
schoowebcampus
 
漢は黙ってjQuery
Takuma Hanatani
 
What Makes Great Infographics
SlideShare
 
Masters of SlideShare
Kapost
 
STOP! VIEW THIS! 10-Step Checklist When Uploading to Slideshare
Empowered Presentations
 
You Suck At PowerPoint!
Jesse Desjardins - @jessedee
 
10 Ways to Win at SlideShare SEO & Presentation Optimization
Oneupweb
 
How To Get More From SlideShare - Super-Simple Tips For Content Marketing
Content Marketing Institute
 
A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...
SlideShare
 
Ad

Similar to HTML5 Local Storageを利用したメモ帳アプリ (20)

KEY
1Day works shop
Kazuya Hiruma
 
PDF
Html5 Web Applications
totty jp
 
PPT
Client Side Cache
Toru Yamaguchi
 
PDF
Js kusen
Net Kanayan
 
PDF
ノンプログラマーでも明日から使えるJavaScript簡単プログラム 先生:柳井 政和
schoowebcampus
 
PDF
GeckoのLocal Storageについて調べてみた
Muneaki Nishimura
 
PPTX
ABC2012Spring 20120324
Tak Inamori
 
PDF
⑱jQueryをおぼえよう!その4
Nishida Kansuke
 
PPT
2010-10-2 FxUG 名古屋勉強会 HTML5で遊んでみよう
Mori Shingo
 
PDF
Android4.2徹底解剖!
leverages_event
 
PPTX
オフラインファーストの思想と実践
Shumpei Shiraishi
 
PDF
Ionicアプリのデータ管理
Katsumi Honda
 
KEY
プロ文.com 勉強会 Phase 1
Hiroki Toyokawa
 
KEY
いまさらJavaScript
Naomichi Yamakita
 
PDF
Kanazawa.js.Next
dynamis
 
PDF
Data URI scheme: okayama-js-2
NISHIMOTO Keisuke
 
PDF
JSRelでlocalStorageを使って 完全オフラインなブラウザアプリ@JSおじさん #2
pandeiro245
 
PDF
Webフロントエンド開発の最新トレンド - HTML5, モバイル, オフライン
Shumpei Shiraishi
 
PDF
JavaScript Basic 01
Yossy Taka
 
PDF
150420 flash004 変数
elephancube
 
1Day works shop
Kazuya Hiruma
 
Html5 Web Applications
totty jp
 
Client Side Cache
Toru Yamaguchi
 
Js kusen
Net Kanayan
 
ノンプログラマーでも明日から使えるJavaScript簡単プログラム 先生:柳井 政和
schoowebcampus
 
GeckoのLocal Storageについて調べてみた
Muneaki Nishimura
 
ABC2012Spring 20120324
Tak Inamori
 
⑱jQueryをおぼえよう!その4
Nishida Kansuke
 
2010-10-2 FxUG 名古屋勉強会 HTML5で遊んでみよう
Mori Shingo
 
Android4.2徹底解剖!
leverages_event
 
オフラインファーストの思想と実践
Shumpei Shiraishi
 
Ionicアプリのデータ管理
Katsumi Honda
 
プロ文.com 勉強会 Phase 1
Hiroki Toyokawa
 
いまさらJavaScript
Naomichi Yamakita
 
Kanazawa.js.Next
dynamis
 
Data URI scheme: okayama-js-2
NISHIMOTO Keisuke
 
JSRelでlocalStorageを使って 完全オフラインなブラウザアプリ@JSおじさん #2
pandeiro245
 
Webフロントエンド開発の最新トレンド - HTML5, モバイル, オフライン
Shumpei Shiraishi
 
JavaScript Basic 01
Yossy Taka
 
150420 flash004 変数
elephancube
 
Ad

More from Yossy Taka (10)

PDF
WebサイトへのYotutube動画の設置
Yossy Taka
 
PDF
Bracketsを使おう
Yossy Taka
 
PDF
canvasによるアナログ時計の作成
Yossy Taka
 
PDF
Canvasによるデジタル時計制作入門
Yossy Taka
 
PDF
ハイブリッドアプリについて-PhoneGapアプリ制作の入り口-
Yossy Taka
 
PDF
Webの仕組みとプログラミング言語
Yossy Taka
 
PDF
Emmetの使い方
Yossy Taka
 
PDF
JavaScript04 jquery プラグインを使おう
Yossy Taka
 
PDF
JavaScript basic, jQuery animation
Yossy Taka
 
PDF
Webデザイン入門1-HTML5・CSSについて-
Yossy Taka
 
WebサイトへのYotutube動画の設置
Yossy Taka
 
Bracketsを使おう
Yossy Taka
 
canvasによるアナログ時計の作成
Yossy Taka
 
Canvasによるデジタル時計制作入門
Yossy Taka
 
ハイブリッドアプリについて-PhoneGapアプリ制作の入り口-
Yossy Taka
 
Webの仕組みとプログラミング言語
Yossy Taka
 
Emmetの使い方
Yossy Taka
 
JavaScript04 jquery プラグインを使おう
Yossy Taka
 
JavaScript basic, jQuery animation
Yossy Taka
 
Webデザイン入門1-HTML5・CSSについて-
Yossy Taka
 

Recently uploaded (11)

PDF
20250729_Devin-for-Enterprise
Masaki Yamakawa
 
PDF
TaketoFujikawa_ComicComputing12th_inKumamoto
Matsushita Laboratory
 
PPTX
2025_7_25_吉祥寺_設計ナイト_ADR運用におけるデータ利活用の考え方.pptx
ssuserfcafd1
 
PDF
VMUG Japan book vsan 20250515 CPU/Memory vSAN
Kazuhiro Sota
 
PDF
LoRaWAN ウェザーステーションキット v3 -WSC3-L 日本語ユーザーマニュアル
CRI Japan, Inc.
 
PPTX
baserCMS『カスタムコンテンツ』徹底活用術〜あなただけの管理画面を自由自在に〜
Ryuji Egashira
 
PDF
20250730_QiitaBash_LT登壇資料_PDC_Kurashina.pdf
pdckurashina
 
PDF
【学会聴講報告】CVPR2025からみるVision最先端トレンド / CVPR2025 report
Sony - Neural Network Libraries
 
PDF
第三世代 ウェザーステーションキット v3 ー WSC3-L 日本語カタログ
CRI Japan, Inc.
 
PDF
MahiroYoshida_セリフに着目したキャラクタロール推定に関する基礎検討_sigcc12th2025
Matsushita Laboratory
 
PDF
20250726_Devinで変えるエンプラシステム開発の未来
Masaki Yamakawa
 
20250729_Devin-for-Enterprise
Masaki Yamakawa
 
TaketoFujikawa_ComicComputing12th_inKumamoto
Matsushita Laboratory
 
2025_7_25_吉祥寺_設計ナイト_ADR運用におけるデータ利活用の考え方.pptx
ssuserfcafd1
 
VMUG Japan book vsan 20250515 CPU/Memory vSAN
Kazuhiro Sota
 
LoRaWAN ウェザーステーションキット v3 -WSC3-L 日本語ユーザーマニュアル
CRI Japan, Inc.
 
baserCMS『カスタムコンテンツ』徹底活用術〜あなただけの管理画面を自由自在に〜
Ryuji Egashira
 
20250730_QiitaBash_LT登壇資料_PDC_Kurashina.pdf
pdckurashina
 
【学会聴講報告】CVPR2025からみるVision最先端トレンド / CVPR2025 report
Sony - Neural Network Libraries
 
第三世代 ウェザーステーションキット v3 ー WSC3-L 日本語カタログ
CRI Japan, Inc.
 
MahiroYoshida_セリフに着目したキャラクタロール推定に関する基礎検討_sigcc12th2025
Matsushita Laboratory
 
20250726_Devinで変えるエンプラシステム開発の未来
Masaki Yamakawa
 

HTML5 Local Storageを利用したメモ帳アプリ

  • 2. Copyright Ⓒ Yoshihiro Takahashi 2012 All Rights 2 localStorage
  • 3. Copyright Ⓒ Yoshihiro Takahashi 2012 All Rights Reserved. 3 localStorageとは • HTML5の関連技術として、新しい規格として標準化 • アプリ(ブラウザ)を終了しても、5MBまでのデータを 保存することができるため、オフラインでも利用可能 • 現状は文字列のみ、保存・読み込みが可能 – 配列などのオブジェクトは保存できない • Internet Explorer 8、Mozilla Firefox、Google Chrome、 Safari、Operaなど全ての主要ブラウザの最新版で実装済 み
  • 4. Copyright Ⓒ Yoshihiro Takahashi 2012 All Rights Reserved. 4 記述方法 • localStorageの値の設定(保存) – localStorage . キー = 値 – localStorage['キー'] = 値 – localStorage.setItem('キー', 値) • localStorageの値の取得 – localStorage.キー – localStorage['キー'] – localStorage.getItem('キー') • localStorageの値の削除 – delete localStorage.キー – delete localStorage['キー'] – localStorage.removeItem('キー')
  • 5. • localStorageの値の設定(保存) – localStorage . キー = 値 – localStorage['キー'] = 値 – localStorage.setItem('キー', 値) • localStorageの値の取得 – localStorage.キー – localStorage['キー'] – localStorage.getItem('キー') • localStorageの値の削除 – delete localStorage.キー – delete localStorage['キー'] – localStorage.removeItem('キー') 記述方法 簡単に入力できる 記述を利用
  • 6. 記述方法 • localStorageの値の設定(保存) – localStorage . キー = 値 • localStorageの値の取得 – localStorage.キー • localStorageの値の削除 – delete localStorage.キー 「キー」は、変数名のルールで任意に指定できます。 「localStrage.キー」という変数だと考えると 変数と同じように利用できます
  • 7. Copyright Ⓒ Yoshihiro Takahashi 2012 All Rights 7 とりあえず、簡単に 保存・取得・削除
  • 8. Copyright Ⓒ Yoshihiro Takahashi 2012 All Rights 8 一人つぶやきアプリ作成
  • 9. Copyright Ⓒ Yoshihiro Takahashi 2012 All Rights 9
  • 10. Copyright Ⓒ Yoshihiro Takahashi 2012 All Rights 10 アプリ開発演習に向けて 複数ページコンテンツを 作成してみよう
  • 11. Copyright Ⓒ Yoshihiro Takahashi 2012 All Rights Reserved. 11 一人つぶやきアプリ基本仕様 • つぶやき閲覧ページ – 過去のつぶやきを表示 – つぶやき登録画面へ移動 – つぶやき消去 • つぶやき登録ページ – 入力用inputタグ – 登録ボタン
  • 12. Copyright Ⓒ Yoshihiro Takahashi 2012 All Rights Reserved. 12 つぶやき登録画面作成 • 登録日時と文字を保存したい • 複数のつぶやきを保存したい – 配列などが利用できないので、複数の情報を 保存するのが難しい
  • 13. Copyright Ⓒ Yoshihiro Takahashi 2012 All Rights Reserved. 13 つぶやき登録画面作成 • 登録日時と文字を保存したい • 複数のつぶやきを保存したい – 配列などが利用できないので、複数の情報を 保存するのが難しい そんなときは・・
  • 14. Copyright Ⓒ Yoshihiro Takahashi 2012 All Rights 14 JSON
  • 15. Copyright Ⓒ Yoshihiro Takahashi 2012 All Rights Reserved. 15 JSONとは • JavaScript Object Notation – javaScriptから文字データを構造的に扱うために考え られたデータ形式 – ダブルクォートで値などを囲む – コロン区切りのペアを、カンマ区切りで記載 { “date” : “1月1日”, “text” : “あけおめ”} { “変数” : “値”, “変数” : “値”}
  • 16. Copyright Ⓒ Yoshihiro Takahashi 2012 All Rights Reserved. 16 JSONをStorageで活用 • localStorageは文字しか保存できない でも、JavaScriptでは配列を活用したい
  • 17. Copyright Ⓒ Yoshihiro Takahashi 2012 All Rights Reserved. 17 JSONをStorageで活用 • localStorageへのデータ書き込み – 配列をJSONデータ(文字)に変換 • localStorageからデータ取得 – JSONデータ(文字)を配列に変換 – 配列に変換後、配列名.変数 としてデータ加工 JSON.stringify(配列) JSON.parse(jsonデータ)
  • 18. Copyright Ⓒ Yoshihiro Takahashi 2012 All Rights 18 配列の使い方
  • 19. Copyright Ⓒ Yoshihiro Takahashi 2012 All Rights Reserved. 19 配列はいろいろ出来る • 配列の先頭に挿入 – 配列.unshift(データ) • 配列の後に追加 – 配列.push(データ) 詳しくはMSDNリファレンス
  • 20. Copyright Ⓒ Yoshihiro Takahashi 2012 All Rights 20 警告メッセージと 確認ダイアログ
  • 21. Copyright Ⓒ Yoshihiro Takahashi 2012 All Rights Reserved. 21 ダイアログ表示 • 警告メッセージ alert(‘メッセージ'); • 確認ダイアログ var r = confirm(‘メッセージ'); if(r){ //OK }else{ //キャンセル }
  • 22. Copyright Ⓒ Yoshihiro Takahashi 2012 All Rights 22 HTML要素の 生成と追加
  • 23. Copyright Ⓒ 2015 Yoshihiro Takahashi All Rights Reserved. 23 タグの生成方法 • タグの生成 オブジェクト名 = document.createElement(“タグ名”); • 属性の追加 オブジェクト名.属性名 = 値; • タグ内への文章追加 オブジェクト名. innerHTML = 値; • タグへのCSS指定 オブジェクト名. style.プロパティ = 値;
  • 24. Copyright Ⓒ 2015 Yoshihiro Takahashi All Rights Reserved. 24 タグの追加方法 • ID指定でのタグの追加 document.getElementById(“id名”).appendChild(オブジェクト名); • タグ指定でのタグ追加 var 親オブジェクト名 = document.getElementByTagName (“親タグ名”); 親オブジェクト名[何番目].appendChild (オブジェクト名);