extension作りで勉強したことメモ
を作った際に覚えたことのまとめ。
同じこと調べないためのメモとして。
データ保存編
localStorage
key-value型のデータをブラウザ内に永続化する。
extensionのオプション設定などをお手軽保存出来る。
localStorage.setItem(key, value); var value = localStorage.getItem(key); //上下どちらでもOK localStorage.key = value; var value = localStorage.key;
*valueには文字列しか保存できないので変換が必要。
var obj = { hoge: fuga, foo: bar }; // 保存 localStorage.hogehoge = JSON.stringify(obj); // stringifyで変換 // 取得 var getObj = localStorage.hogehoge; JSON.parse(getObj); // parse
webDatabase
SQlite3でのデータベースも作れる(容量制限あり)
・open ・openのときにDBのバージョンが違うと怒られる ・changeVersionを使ったり ・transaction ・sql実行(trans.executeSql) ・selectにもtransaction必要
の流れ
// dbオブジェクトが返る // developer tools の'Storage'を見るとDatabaseの所に出てくる var db = openDatabase(name, version, [comment], [size]); db.transaction( function(trans){ trans.executeSql(SQL, bind, callback); }, function(e){ console.log(e); }, // SQLエラー時の関数。省略可 function(res){ console.log('OK'); } // transaction完了時の関数。省略可 );
trans.executeSql でselectしか結果はcallbakの中で見れる
trans.executeSql('select * from hoge where 1 = ?', [1], // bindもOK function(trans, r){ // r.rows に結果が入ってくる console.log(r.rows.length); // 返ってきた行数 r.rows.item(0).fuga // 一つ目のfugaカラムのデータ } );
SQliteメモ
普段はmysqlを使ってるからsqliteでいっぱい怒られた。
・auto increment なidを作りたいとき ・id INTEGER PRIMARY KEY で出来る ・insertは一行ずつ ・ insert .... values (hoge, fuga), (foo, bar); はエラーで怒られる ・trancate文はない ・delete from hoge が正解??
課題
・vacumeって何だろうか?? ・後で調べる ・changeVersion ・今回は使ってないからextension更新するときに使ってみる
chromeでextension作るときはこれでとりあえず問題なかった。
もっと色々出来るみたいなので何か作るときに追加で使ってみよう(゚∀゚)