Я только что узнал об индексированныхDB, и это мое понимание настройки базы данных. Вы вызываете .open(dbName)
, чтобы получить экземпляр БД. Если база данных этого имени не существует на компьютере пользователя (например, если это их первый визит на сайт), это вызывает событие onUpdateNeeded, поэтому вы должны делать такие вещи инициализации, как создание ObjectStores.Почему indexedDB использует «версию»?
Теперь вы также можете передать в версии - .open(dbName, version)
- и если база данных существует, но использует более низкую версию, это вынуждает событие onUpdateNeeded независимо. Теперь я вижу полезность этого ... но почему есть целочисленный аргумент? Если точкой аргумента «версия» является принудительное обновление, почему бы просто не указать флаг forceUpdate
? Почему у вас есть аргумент целочисленной версии, который вам нужно постоянно увеличивать, когда вы отлаживаете свой код, предположительно достигая версии 156 после многих дней отладки?
Является ли версия, используемая в некоторых функциях, я не знаю о том, что вы просто заставляете обновления, а если нет, то в чем причина этого? Кроме того, планируете ли вы продолжать изменять версию во время разработки, но сохраните ее при выпуске приложения или идете, что вы должны постоянно менять ее на протяжении всего жизненного цикла вашего приложения?
Полезно * после * вы: отправили свою программу, кто-то ее использовал, сохранили некоторые данные, и вы сделали обновление, которое хранит данные несовместимо. Конечно, для локального тестирования вы просто хотите очистить его каждый раз. – transistor09