引き続き、Monacaについて勉強中です。
備忘録として。。。
直面した問題
Monacaのアプリを使っている時に、オフラインだったらどうするか、という問題に直面し、ローカルにデータを置いておこう、となったので、Monacaでローカルにデータを保存する手段について、考察しました。
手段をしては、主に2つが見つかりました。
Web SQL Database(SQLite)
公式のドキュメント: データベースの利用方法にもありますね。
自分の知識不足で、SQLiteってもの自体も良く分からないのですが、
MySQLだったり、SQL Serverだったりと同じものって印象です。
参考HP
CREATE hogehoge (hoge1, hoge2,...);
でDBを作って、
INSERT INTO hogehoge VALUES ('a', 'b',...);
でデータを差し込んで、
SELECT hoge1, hoge2,... FROM hogehoge WHERE hoge1 = 'a';
でデータを取得するといった流れになるか、と。
使用用途としては、Twitterのタイムラインのように、(投稿者・つぶやき・投稿時間)など、同じ書式のデータを保存しておいて、それをリストとして表示するような時に使えますかね。
沢山のデータを利用するにも、こちらの方が扱いやすいと思います。
Local Storage
公式のドキュメント: Local Storageにありますね。
こちらの方が、より実践的かもしれません。
アシアルブログ
こちらは、文字列(key)と値(item)を一対一で対応させる形式ですね。
使用用途としては、ユーザー登録の時に入力して頂くメールアドレスなどを保存しておくような形ですか。
localStorage.setItem('email', 'hogehoge@hogehoge.ne.jp');
と保存しておくと、
var eMail = localStorage.getItem('email');
とする事で、メールアドレスをいつでも引き出す事が出来ます。
単純な文字列だけでなく、オブジェクトや配列等も保存する事が可能なようですね。
結局どっちがいいの?
今回、私が業務として使う分には、SQLiteの方が好ましいです。
理由としては、リストで見せる処理を利用するので、SELECT文で一括処理出来た方が嬉しい、という事。
また、SQL構文を新たに覚える必要が無いってのも大きいですね。
Monacaについて、覚える事が他に多すぎるので。
他にも、DBの設計を考えやすいってのも理由の一つです。
ただ、Local Storageで、オブジェクトも保存出来るという事なので、
APIでJsonを引っ張ってきたデータを展開して、そのままLocalStorageに保存すれば、いちいち加工しなくても良いのでは。。。とも思います笑
ブレブレですね、すみません。
でも、SQLの方がこれまで使ってきた安心感があるので、今回は、SQLiteで。
Monacaの他の投稿
- 端末IDの取得方法
- Jsonを展開する方法 (こちら、編集途中です・・・;;)
まだまだ、勉強する事が多いですね。
誰かのお役に立てれば。。