2015-03-24 12 views
12

Sto utilizzando IndexedDB per memorizzare alcuni dati. Sembra funzionare, ma se aggiorno la pagina, vedo: An IndexedDB transaction that was not yet complete has been aborted due to page navigation. nella console del browser su Firefox (36.0.4). Sto usando questo file (locale) per testare:"Una transazione IndexedDB non ancora completata è stata interrotta a causa della navigazione della pagina"

<html> 
    <head><meta charset="UTF-8"></head> 
    <body> 
    <script> 
var request = window.indexedDB.open("test_db", 2); 
request.onupgradeneeded = function (event) { 
    request.result.createObjectStore("test_store"); 
}; 

request.onsuccess = function (event) { 
    var db = request.result; 
    var transaction = db.transaction(["test_store"], "readwrite"); 
    var put = transaction.objectStore("test_store").put("key", "value"); 
    transaction.oncomplete = function (event) { 
    console.log("Transaction complete"); 
    }; 
}; 
    </script> 
    </body> 
</html> 

Se eseguo più transazioni, ottengo più errori. Se ho un gestore onclick che esegue una transazione e faccio clic più volte, l'aggiornamento stampa un errore per ogni transazione che ho fatto in passato.

Tutto ciò mi fa pensare che le mie transazioni non vengano ripulite. Cosa devo fare per completare una transazione?

Il mio gestore oncomplete viene chiamato. Rinfrescante un paio di volte, la console del browser simile a questa:

"Transaction complete" test.html:16:1 
An IndexedDB transaction that was not yet complete has been aborted due to page navigation. test.html:13:0 
"Transaction complete" test.html:16:1 
An IndexedDB transaction that was not yet complete has been aborted due to page navigation. test.html:13:0 
"Transaction complete" test.html:16:1 

pagina di prova (Ctrl-Shift-J per aprire la console, poi Ctrl-R per aggiornare mostra l'errore):

http://test.roscidus.com/static/idb.html

+0

Se il "onComplete" sta sparando poi IndexedDB sembra credere transazione è stata completata. Accade subito dopo aver svuotato la cache del browser? –

+0

Potresti creare una pagina web per riprodurre il tuo problema? Potrebbe essere un bug del browser. –

+0

@KyawTun Ho aggiunto un collegamento a una pagina di test alla fine della domanda. Ho provato usando un nuovo profilo di Firefox. –

risposta

Problemi correlati