Открытие базы данных

Открытие базы данных.

В первую очередь в JavaScript-коде нам нужно открыть базу данных. Атрибут indexedDB и метод open() открывают существующую базу данных с указанным именем или создают новую, если базы с этим именем еще нет.

Листинг 11.3. Открытие базы данных

Function initiate(){

Databox=document. getElementById(‘databox’); var button=document. getElementById(‘save’); button. addEventListener(‘click’, addobject, false); if(‘webkitIndexedDB’ in window){

Window. indexedDB=window. webkitIndexedDB;

Window. IDBTransaction=window. webkitIDBTransaction;

Window. IDBKeyRange=window. webkitIDBKeyRange;

Window. IDBCursor=window. webkitIDBCursor;

}else if(‘mozIndexedDB’ in window){ window. indexedDB=window. mozIndexedDB;

}

Var request=indexedDB. open(‘mydatabase’); request. addEventListener(‘error’, showerror, false); request. addEventListener(‘success’, start, false);

}

Функция initiate() из листинга 11.3 подготавливает элементы шаблона и открывает базу данных. Инструкция indexedDB. open() выполняет попытку открытия базы данных с именем mydatabase и возвращает объект запроса с результатом операции. В зависимости от результата операции на этом объекте срабатывает событие error или success.

На момент написания этой главы разработка данного API находилась на стадии экспериментов. К некоторым атрибутам, включая indexedDB, необходимо добавлять префиксы, для того чтобы они правильно работали в разных браузерах. Прежде чем открывать базу данных в функции initiate(), мы проверили наличие webkitIndexedDB или mozIndexedDB, а затем подготовили атрибуты для конкретного механизма браузера.

Когда экспериментальный период закончится, вы сможете удалить условный оператор if в начале кода из листинга 11.3.

События — важная часть данного API. IndexedDB обладает свойствами как синхронного, так и асинхронного API. Синхронная часть в настоящее время только разрабатывается, и она будет тесно связана с API Web Workers (Рабочие процессы). В противоположность этому асинхронная часть предназначена для обычного использования в Сети и уже доступна разработчикам приложений. Асинхронная система выполняет задачи в фоновом режиме и возвращает результаты позже. С этой целью API запускает различные события для каждой операции. Любое действие над базой данных и ее содержимым обрабатывается в фоне (пока система выполняет другие сценарии и программы), а события срабатывают позже, информируя вызвавший их код о результатах.

После того как API заканчивает обработку запроса к базе данных, срабатывает событие error или success и в нашем коде выполняется функция showerror() или start() для отображения сообщения об ошибке или перехода к определению базы данных соответственно.

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

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