gpt4 book ai didi

javascript - 使用indexedDB时出现类型错误 "versionchange"

转载 作者:行者123 更新时间:2023-11-28 02:09:29 25 4
gpt4 key购买 nike

非常感谢 Kristof 的建议,我更正了我的代码:

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),但是当我重新打开DB时,没有调用upgradeneeded。

最佳答案

您无法手动创建版本更改事务。调用此功能的唯一方法是在打开 indexeddb 连接时更改版本号。欲了解更多信息:http://www.kristofdegrave.be/2012/01/indexed-db-defining-your-structure-new.html

var dbRequest = indexeddb.open("name", 3);
dbRequest.onupgradeneeded = function (e)
{
var versionChangeTrans = e.target.transaction;
}

关于javascript - 使用indexedDB时出现类型错误 "versionchange",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17313784/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com