window.onload demarre avant indexed db statements
Bonjour,
J'ai une fonction appelee checkFlights, une series d'etats pours ouvrir base de donnee indexedDB et un window.onload pour déclencher la fonction checkflights.
Il semblerait que window.onload se declenche avant que la base de donnee se soit ouverte et du coup la fonction checkflights ne fonctionne pas normalement car elle considère la variable db comme null.
Code ci dessous. Merci d'avance pour votre support.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
| var db = null
const request = indexedDB.open('MyDataBase', '1');
//on upgrade needed
request.onupgradeneeded = e => {
db = e.target.result
/* note = {
title: "note1",
text: "this is a note"
}*/
const myFlights = db.createObjectStore("my_flight", {
keyPath: "flightid"
})
}
request.onsuccess = e => {
db = e.target.result
}
request.onerror = e => {
alert(`error: ${e.target.error} was found `)
}
window.onload = function () {
checkFlights()
}
function checkFlights() {
const tx = db.transaction("my_flight", "readonly");
// var objectStore = transaction.objectStore('my_flight');
const mesVols=tx.objectStore("my_flight")
var countRequest = mesVols.count();
countRequest.onsuccess = function() {
console.log(countRequest.result);
if((countRequest.result>0) && (window.navigator.onLine)){
sendFlights()
notify("Flights sent to server")
}
}
} |
Comment n'y ai je pas pense tout seul !!
Merci beaucoup pour ta réponse Nosmoking.
En effet, tellement plus simple.
Et oui il m'arrive de faire encore cette erreur = au lieu == :oops: