В Firefox. Init (один раз)IndexedDB deleteDatabase не сбрасывает версию
var r, dbname = 'a1', db = mozIndexedDB;
Во-первых,
try { r = db.open(dbname, 5); } catch (ex) { console.log(ex); }
r.onupgradeneeded = r.onsuccess = r.onblocked = r.onerror = function (e) { console.log(e); };
вы получите два события обжигали, как должно быть. Затем закройте базу данных,
r.result.close()
Наконец, удалите базу данных,
try { r = db.deleteDatabase(dbname); } catch (ex) { console.log(ex); }
r.onsuccess = r.onerror = r.onblocked = function (e) { console.log(e); };
удаляет успешно. Однако, когда я запускаю первый скрипт (открытие db), «onupgradeneeded» не запускается и открывается база данных с версией, которую она имела до того, как она была удалена. Это ошибка, или я делаю что-то неправильно?
Спасибо.
Сегодня я узнал, что это я вызываю это странное поведение, а не Firefox. Я использую sqlite db viewer, который предположительно блокирует файл sqlite, и Firefox не может сбросить версию. Всякий раз, когда я выхожу из своего окна просмотра sqlite, код выше (и мои тесты) начинает работать нормально! Думал, что все еще странно, что Firefox не срабатывает/не выдает ошибки. – David
Очень интересно. Слишком много смысла. Спасибо за отчетность, я уверен, что кто-то столкнется с этим в какой-то момент, а ИБР соберет пар. – buley
Был бы очень признателен, если бы вы могли попытаться выяснить, видите ли вы по-прежнему такое же поведение. Мы действительно должны увольнять событие «ошибка». Мы исправили некоторые ошибки с момента начальной реализации deleteDatabase, возможно, включая этот.Если вы все еще можете воспроизвести ошибку в ночной сборке, пожалуйста, сообщите об ошибке, и я буду уверен, что она будет исправлена. –