:のIndexedDB:この行でTransactionInactiveError
var request = store.add(obj);
私はエラーを取得する:私はAJAXを使用する場合
TransactionInactiveError: A request was placed against a transaction which is currently not active, or which is finished.
私はエラーを取得します。トランザクションが終了する前にAJAXが完了するようにするにはどうすればよいですか?私はオブジェクトストアにSQLデータベースから情報をロードしようとしています。私がこのエラーを捜したとき、私はトランザクションと非同期性についての情報を得るが、私はコードで具体的な解決策を見いださなかった。
私はコールバック、約束事、およびタイムアウト(私にはハックのように感じます)を調べましたが、私はこの非同期呼び出しを動作させることはできません。どんな助けでも大歓迎です。
var req = indexedDB.open(DB_NAME, DB_VERSION);
req.onsuccess = function() {
db = this.result;
var tx = db.transaction('tblFields', 'readwrite');
var store = tx.objectStore('tblFields');
$.ajax({
type: "POST",
url: "Off.aspx/GetFields",
data: '{}',
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (response) {
var customers = response.d;
$(customers).each(function() {
var obj = { measureID: this.measureID, measureName: this.measureName, fieldName: this.fieldName };
var request = store.add(obj);
});
},
failure: function (response) {
alert(response.d);
},
error: function (response) {
alert(response.d);
}
});
}