2

indexedDBの w3 仕様の最新バージョンによるとindexedDB.open、バージョン 1 未満のへの呼び出しwindow.indexedDB.open('somename', 0)は、次のように動作する必要があります。

DOMException TypeError version の値が 0 (ゼロ) または負の数です。

ただし、WinJS が間違ったタイプの例外をスローしているように見えることに気付きましたInvalidStateError

w3 仕様を誤解していますか、それとも (IE10 エンジンだと思います) 実装の欠陥ですか?

これを呼び出している理由は、表示されていたエラー ( InvalidState) を、無効なバージョン番号を使用してコードに関連付けるのに時間がかかったからです。他のユーザーが私の間違いを回避できることを願っています!

4

2 に答える 2

2

バージョン 0 のデータベースを開くことはできません。少なくとも 1 以上である必要があります。仕様は次のように述べています。

データベースが最初に作成されたとき、そのバージョンは 0 です。

そのため、まだ存在しないデータベースを開こうとすると、データベースが作成され、バージョン 0 が取得されます。データベースが作成された後、onupgradeneeded メソッドが呼び出されるので、構造を定義できます。ここでは、oldversion が 0 であり、newversion が提供されたバージョンまたは 1 (バージョンを提供しなかった場合) であることがわかります。

于 2012-10-27T05:40:05.507 に答える