TransactionInactiveError in IndexedDB -


can create transaction inside transaction in indexeddb?? want export indexeddb datas sql server.. that, i'm iterating using cursors , send datas sql server after successful insertion, want delete same data in idb.. while doing this, i'm getting transactioninactive error: transaction not active. give me suggestions solve this..

            var trans = db.transaction(["applicant"],"readwrite");             var store = trans.objectstore("applicant");             //console.log(store);              var index = store.index("am_applicant_name");             var key = idbkeyrange.lowerbound(0);             var cursor = index.opencursor(key);             //console.log(cursor);              cursor.onsuccess = function(e) {                 var result = e.target.result;                 console.log(result);                  if(result) {                     alert(result.value["am_applicant_name"]+" "+result.value["am_father_name"] +" "+result.value["id"]);                      // code save idb values sql server                     if (window.xmlhttprequest) {                         var spath = "indexeddb.aspx?insert=y";                         console.log(spath);                         var xhr = new xmlhttprequest();                         xhr.open("post", spath, true);                         xhr.onreadystatechange = function() {                             if (xhr.readystate == 4 && xhr.status == 200) {                                 if (xhr.responsetext != "") {                                  }                                 alert(xhr.getresponseheader("y-result")+" , "+xhr.getresponseheader("y-id"));                                 if (xhr.getresponseheader("y-result") == "y") {  //check data insertion success or not                                     alert("moved successfully.");                                 }                                 if (xhr.getresponseheader("y-id") != "") {  //check data insertion success                                     alert(xhr.getresponseheader("y-id")+"ds");                                     //delete idb                                       store.delete(xhr.getresponseheader("y-id")); **here getting error**                                     console.log("record deleted indexeddb");                                 }                             }                         }                           //passing parameters server side events                         xhr.setrequestheader("district_code", result.value["am_district_code"]);                         xhr.setrequestheader("taluk_code", result.value["am_taluk_code"]);                         xhr.setrequestheader("hobli_code", result.value["am_hobli_code"]);                         xhr.setrequestheader("village_code", result.value["am_village_code"]);                         xhr.setrequestheader("habitation_code", result.value["am_habitation_code"]);                         xhr.setrequestheader("reservation_code", result.value["am_reservation_code"]);                         xhr.setrequestheader("caste_code", result.value["am_caste_code"]);                         xhr.setrequestheader("applicant_name", result.value["am_applicant_name"]);                         xhr.setrequestheader("father_name", result.value["am_father_name"]);                         xhr.setrequestheader("mobile_no", result.value["am_mobile_no"]);                         xhr.setrequestheader("address", result.value["am_address"]);                         xhr.setrequestheader("address1", result.value["am_address1"]);                         xhr.setrequestheader("address2", result.value["am_address2"]);                         xhr.setrequestheader("pin_code", result.value["am_pin_code"]);                         xhr.setrequestheader("id", result.value["id"]);                          xhr.send();                     }                      result.continue();                 }             } 

thanks question.

you transactioninactiveerror because delete operation want preform happens in callback of ajax call.

the indexeddb autocommitting, meaning once actions on transaction done, transaction commits. meaning in case, once results in cursor iterated, transaction commited. transaction doesn't wait on possible calls can made due async callback.

so should delete item or open new transaction every delete.


Comments

Popular posts from this blog

android - Get AccessToken using signpost OAuth without opening a browser (Two legged Oauth) -

org.mockito.exceptions.misusing.InvalidUseOfMatchersException: mockito -

google shop client API returns 400 bad request error while adding an item -