-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
add JDBDatabase.getObjectStore() #6
Conversation
なるほど、了解です。ただ、「get」だと「あらかじめ存在するものを取得する」というニュアンスが強いように感じるんで、「createObjectStore()」とかにしようかなあ。 そうなると、getObjectStore(name)とかremoveObjectStore(name)とかも欲しくなりますね。 他、APIで気になるところとかあります? |
そうか、openする前にcallしてるんですよね。 そうなると、JDBObjectStoreをopen前にオブジェクトをゲットできるのにも違和感が。 var EmployeeDB = new JDBDatabase('EmployeeDB3', 1); EmployeeDB.open(); /* 何か */ var EmployeeStore = EmployeeDB.getObjectStore(name); とかとか |
割と斜め読みなので、もうちょっと中身を見ますね~。 ObjectStoreの削除がないので白石さんが言うようにremoveObjectStore(name)は欲しいですが、 あとは定義を変更してそのままデータを移行するような場合がありますので、 |
DBをオープンして、オブジェクトストアを作って、って流れが自然に思えますよね。 var db = JDBDatabase.open("EmployeeDB", 1); var EmployeeStore = db.createObjectStore({ db.init().success(function() { |
データ更新用のfunctionは、欲しい気持ちはすごくわかります。ぼくも、こないだ作っていたアプリで初期データの投入をDBアップグレード時にやりたかったので。 |
なんと。そもそもスキーマ変更が動的にできないのがいやらしいですよね。 白石さんの案でいくのが一番良さそうですね。 var db = JDBDatabase.init("EmployeeDB", 1); var EmployeeStore = db.createObjectStore({ db.open().success(function() { |
なるほど、だとすると今とあんまり変わらないかな。 変更点としては、JDBObjectStoreの生成をnewではなくJDBDatabase.createObjectStore()でやる、というだけでもいいのかもしれません。メソッド名も、defineObjectStore()とかcreateStore()とかdefineStore()とか、いろいろ考えられそう。 ただ、瑣末な変更であることには変わりないので今は手を付けないでおいて、コードの分かりやすさだけではなく満たしたいユースケースとか、IndexedDB 2012年2月25日2:20 pikotea
|
そうですね。 というかこういう雑談はここですることじゃないですねw |
JDBObjectStore()のoptionsにdatabaseを指定してnewするのは好みじゃないので、JDBDatabaseにgetObjectStore()を追加してみました。