Спасибо большое вам совет Krištof, правлю мой код:TypeError «versionchange» при использовании индексированной
var indexedDB = window.indexedDB || window.webkitIndexedDB || window.mozIndexedDB;
var IDBTransaction = window.IDBTransaction || window.webkitIDBTransaction;
const dbName = "mediasDB";
const db_store = "medias";
var db;
function openDB(dbName, dbVersion) {
var request = indexedDB.open(dbName, dbVersion);
request.onupgradeneeded = function (evt) {
console.log("Upgrade");
console.log('Creating objectStore');
var store = evt.currentTarget.result.createObjectStore(db_store);
store.transaction.oncomplete = function (evt) {
storeMedias(mediaData, function (media) {
var store = getObjectStore(db_store, "readwrite")
console.log(media);
store.put(media, media.url);
console.log("Rajout d'un media dans la BD");
});
};
};
request.onsuccess = function (event) {
console.log("openDB DONE");
db = this.result;
};
request.onerror = function (event) {
console.log(event.target.result);
};
}
openDB(dbName, 1);
//On déclenche le défilement des médias au bout de 5 secondes
setInterval(function() {
$.getJSON("remoteFileJson", function (data) {
if (data.revision != db.version) {
console.log('Mise à jour de la BD');
openDB(dbName, data.revision);
} else {
console.log('La base de données est à jour');
}
});
}, 10000);
Каждые десять секунд, я получаю JSON, которые дают мне мой номер ревизии (это больше, чем мой db.version я проверяю), но когда я reOpenDB, нет вызова для обновленного.
var db ,; Думаю, после db опечатка ?? –
Нет, это была ошибка, извините. var db; –
Текущая проблема теперь, вероятно, в том, что вы заблокированы, потому что ваше первое соединение с db все еще открыто и должно быть закрыто перед обновлением. –