Я играю с IndexedDB API из спецификации html5 как в Firefox, так и в Chrome.
Там что-то работает не так, как ожидалось, я хочу поделиться этим здесь, потому что не знаю, виновата ли яили ошибка браузера.
В соответствии с API , существует событие под названием onversionchange , которое вызывается, когда вы открываете соединение с локальной базой данных, и используется номер версии:больше, чем базы данных один.Моя проблема заключается в том, что это событие вызывается в Firefox, но не в Chrome.
В некоторых примерах кода используется несколько режимов:
var db;
var DB_VERSION = 5;
var openRequest = iDb.open("test_db", DB_VERSION, function() {
console.log("This is the place where I can change db structure");
});
openRequest.onSuccess = function(event) {
db = openRequest.result;
};
openRequest.onversionchange = function(event) {
console.log("This is the place where I can change db structure");
};
openRequest.onupgradeneeded = function(event) {
console.log("This is the place where I can change db structure");
};
Событие onversionchage не запускается, даже когда я меняю версиюномер.
ОБНОВЛЕНИЕ Поскольку ebidel ответил, реализация Chrome не соответствует текущей спецификации, поэтому для того, чтобы иметь код клиента с перекрестными ссылками, нам нужно обработатьдве ситуации: onversionchange событие и database.version сравнение вручную.
Вот пара ссылок на пример кода: Chromium google group и HTML5 Скалы!