Версия базы данных

Версия базы данных.

Для того чтобы завершить определение базы данных, нужно сделать еще несколько вещей. Как уже говорилось, базам данных IndexedDB всегда соответствует определенный номер версии. При создании базы данных ее версии присваивается значение null. Таким образом, проверив это значение, мы можем точно определить, имеем мы дело с новой базой данных или нет.

Листинг 11.4. Установка версии и реагирование на события

Function showerror(e){

Alert(‘0i^6Ka: ‘+e. code+’ ‘+e. message);

}

Function start(e){

Db=e. result || e. target. result; if(db. version==»){

Var request=db. setVersion(‘1.0’);

Request. addEventListener(‘error’, showerror, false); request. addEventListener(‘success’, createdb, false);

}

}

Сейчас одни браузеры отправляют результирующий объект через событие, а другие — через элемент, на котором событие сработало. Для того чтобы автоматически выбиралась нужная ссылка, мы добавили логическое выражение e. result || e. target. result. Когда спецификация будет готова, вероятно, можно будет всегда использовать только одну ссылку.

Наша функция showerror() очень проста (в таком маленьком приложении нет необходимости обрабатывать ошибки). Здесь мы всего лишь генерируем сообщение об ошибке, используя атрибуты code и message интерфейса IDBErrorEvent. В то же время функция start() выполняет

Необходимую последовательность шагов для распознавания версии базы данных и установки правильного значения в случае, если приложение запускается впервые. Функция связывает объект result, созданный событием, с переменной db. В дальнейшем эта переменная представляет базу данных и используется для обращения к ней.

В интерфейсе IDBDatabase предусмотрено свойство version, информирующее о текущей версии базы данных, а также метод setVersion(), позволяющий задать новое значение версии. В функции start() из листинга 11.4 мы распознаем текущее значение версии, а затем в зависимости от результата задаем или не задаем новое. Если база данных уже существует, то значение свойства version отличается от null, следовательно, ничего настраивать не нужно. Однако если пользователь запускает приложение впервые, то в свойстве version мы обнаруживаем значение null и нам нужно задать новую версию и настроить базу данных.

Метод setVersion() принимает строку, содержащую любое число или символьную последовательность, которую вы хотите объявить в качестве версии. Необходимо позаботиться только о том, чтобы в каждом коде, где открывается эта версия базы данных, использовалась та же самая строка. Данный метод, как и любая другая процедура в этой части API, работает по асинхронному принципу. Версия устанавливается в фоновом режиме, а о результате ваш код информируется посредством событий. В случае ошибки можно снова вызывать функцию showerror(), но если установка номера версии проходит правильно, то вызывается функция createdb(). Она объявляет хранилища объектов и индексы для этой новой версии.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *