HTML5を業務アプリで使うための勉強会 #9

今回と次回は「Indexed Database API」です。本APIの数は半端ないです(@o@)そのため、今回はデータベースの作成&削除、データのCRUD(生成・取得・更新・削除)を学びました。あと、今までのAPIと実装(記述)方法が異なる部分もありましたので、何回か見直しが必要になると思います。 # Indexed Database API、侮り難し!
3
taknb2nch @taknb2nch

「HTML5を業務アプリで使うための勉強会 #9」の募集を開始しました。今回のテーマは Indexed Database API です。ご参加お待ちしております。 http://t.co/LPbCj0lmvk #gdgchugoku

2013-05-31 11:46:12
taknb2nch @taknb2nch

明日どうするかな。今までの中で一番ヘビィな内容だな。もちろん完璧な準備はできませんよw。複数回に分けて準備できたところまで進めるようにしましょうか。私の喉をいたわるとか理由を付けてw。 #gdgchugoku

2013-06-05 17:13:38
Ryuji Iwata @qt_luigi

HTML5勉強会、始まります。本日と次回で「Indexed Database API」です。 #gdgchugoku

2013-06-06 19:07:14
Ryuji Iwata @qt_luigi

Databaseとなっていますが、リレーショナルではなくキーバリューストアです。 #gdgchugoku

2013-06-06 19:12:18
Ryuji Iwata @qt_luigi

知りたいのは「Web Storage との違い」。 #gdgchugoku

2013-06-06 19:13:50
Ryuji Iwata @qt_luigi

本日はサンプルから見て行きます。 #gdgchugoku

2013-06-06 19:15:02
Ryuji Iwata @qt_luigi

オブジェクトストア=テーブル、かな。 #gdgchugoku

2013-06-06 19:22:50
Ryuji Iwata @qt_luigi

open()を呼び出してからイベントを定義。今までと逆ですねぇ... #gdgchugoku

2013-06-06 19:26:46
Ryuji Iwata @qt_luigi

データベースを定義したイベントリスナーを抜けた後にドバドバ〜っと実行されます。 #gdgchugoku

2013-06-06 19:30:20
Ryuji Iwata @qt_luigi

onupgradeneeded()イベントが肝。バージョンが変わった時に呼び出されて、ここでしかオブジェクトストアを作成できません。 #gdgchugoku

2013-06-06 19:34:09
Ryuji Iwata @qt_luigi

データベースはclose()が呼び出されていないと削除(deleteDatabase())できません。 #gdgchugoku

2013-06-06 19:38:40
Ryuji Iwata @qt_luigi

試しにclose()を呼び出さない状態でonupgradeneeded()を呼び出したらどうなるか挑戦中... #gdgchugoku

2013-06-06 19:40:21
Ryuji Iwata @qt_luigi

挑戦は失敗しました(無理でした) #gdgchugoku

2013-06-06 19:51:14
Ryuji Iwata @qt_luigi

JavaScriptのように登録できるデータも何でもアリ(文字列やオブジェクトなど)です。 #gdgchugoku

2013-06-06 20:01:39
Ryuji Iwata @qt_luigi

e.target.resultで取得できる値、オープン時はデータベースでストア(put)時はkey値。こんがらがって来ています...(@o@) #gdgchugoku

2013-06-06 20:04:30
Ryuji Iwata @qt_luigi

e.target.resultで取得できる値、ストア(get)時はvalue値。 #gdgchugoku

2013-06-06 20:07:40
Ryuji Iwata @qt_luigi

あ、データを登録や取得する時はtransaction()を呼び出しておく必要があります。 #gdgchugoku

2013-06-06 20:08:50
Ryuji Iwata @qt_luigi

ちなみに「自動コミット」です。 #gdgchugoku

2013-06-06 20:12:27
Ryuji Iwata @qt_luigi

Web Storage との違いとしては「カーソルが使える」点と「valueに対してインデックスを貼れる」ところ辺り。 #gdgchugoku

2013-06-06 20:22:12
Ryuji Iwata @qt_luigi

今回の合い言葉は「こういうものだ」と(^^;) #gdgchugoku

2013-06-06 20:24:02
Ryuji Iwata @qt_luigi

作成したデータベースは Developer Tools からは消せません! #gdgchugoku

2013-06-06 20:26:10
Ryuji Iwata @qt_luigi

保存できるデータ量がギガ単位という点も Indexed Database の優位点の一つ。 #gdgchugoku

2013-06-06 20:27:54
Ryuji Iwata @qt_luigi

(食の良い"かほり"が、漂っております...あ、カレーの"かほり"も来たぁ...) #gdgchugoku

2013-06-06 20:32:49