이 라인에서 :색인화 : TransactionInactiveError
var request = store.add(obj);
나는 오류를 얻을 :
TransactionInactiveError: A request was placed against a transaction which is currently not active, or which is finished.
나는 단지 내가 AJAX를 사용할 때 오류가 발생합니다. 트랜잭션이 완료되기 전에 AJAX가 완료되었는지 어떻게 확인합니까? objectstore에 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);
}
});
}