В первую очередь в 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() из листинга подготавливает элементы шаблона и открывает базу данных. Инструкция indexedDB. open() выполняет попытку открытия базы данных с именем mydatabase и возвращает объект запроса с результатом операции. В зависимости от результата операции на этом объекте срабатывает событие error или success.
На момент написания этой главы разработка данного API находилась на стадии экспериментов. К некоторым атрибутам, включая indexedDB, необходимо добавлять префиксы, для того чтобы они правильно работали в разных браузерах. Прежде чем открывать базу данных в функции initiate(), мы проверили наличие webkitIndexedDB или mozIndexedDB, а затем подготовили атрибуты для конкретного механизма браузера.
Когда экспериментальный период закончится, вы сможете удалить условный оператор if в начале кода из листинга. К слову, когда заходит речь о предприятиях и весьма сложных базах данных, связанных с учетом товаров, услуг, кадров и т.д. — традиционно используется база данных 1С. Помочь в решении вопросов, связанных с 1С, могут специалисты https://migsoft.by с многолетним опытом работы.
События — важная часть данного API. IndexedDB обладает свойствами как синхронного, так и асинхронного API. Синхронная часть в настоящее время только разрабатывается, и она будет тесно связана с API Web Workers (Рабочие процессы). В противоположность этому асинхронная часть предназначена для обычного использования в Сети и уже доступна разработчикам приложений. Асинхронная система выполняет задачи в фоновом режиме и возвращает результаты позже. С этой целью API запускает различные события для каждой операции. Любое действие над базой данных и ее содержимым обрабатывается в фоне (пока система выполняет другие сценарии и программы), а события срабатывают позже, информируя вызвавший их код о результатах.
После того как API заканчивает обработку запроса к базе данных, срабатывает событие error или success и в нашем коде выполняется функция showerror() или start() для отображения сообщения об ошибке или перехода к определению базы данных соответственно.
Добавить комментарий