В локальном хранилище HTML5 существует база данных под названием IndexedDB. Из предыдущей части: Advanced Series HTML5: веб -хранилище, мы знаем, что веб -хранилище может легко получить доступ к простым данным в локальном доступе, но для большого количества структурированного хранилища преимущества IndexedB еще более очевидны. Затем давайте посмотрим, как IndexedDB сохраняет данные.
Подключить базу данныхОдин веб -сайт может иметь несколько баз данных IndexedDB, но имя каждой базы данных уникально. Нам нужно подключить конкретную базу данных через имя базы данных.
var Research = IndexedDb.open ('dbname', 1); } Запрос.
Мы используем метод IndexedDB.Open для подключения базы данных. Этот метод вернет объект idbopendbrequest для представления объекта запроса, который запрашивает базу данных. Мы можем определить метод, в котором подключение является успешным или не выполняется, контролируя события OnSucccess и Onerror объекта запроса.
Поскольку хранилище данных в базе данных не позволяет складу базы данных изменяться в той же версии, новый номер версии необходим для обновления версии в методе IndexedDB.Open, чтобы избежать многократного изменения базы данных в той же версии. Номер версии должен быть целым числом!
var Research = IndexedDb.open ('dbname', 2); is = is = is = ' + e.newversion);}
Мы определяем метод, выполненный при обновлении версии базы данных, контролируя обстановленное событие объекта запроса.
Выключите базу данныхПосле использования Indexedb.open для подключения к успеху базы данных будет возвращен объект idbopendbrequest.
var Research = IndexedDB.Open ('dbname', 2); close ();Удалить базу данных
indexeddb.deletedatabase ('dbname');Создать объектный склад
Store Store является основой базы данных IndexedDB.
var Research = IndexedDB.Open ('dbname', 3); 'userid', autoincrent: false});
DB.CreateObjectStore Метод получает два параметра. Свойство клавиатуры в этом объекте является основным ключом, который эквивалентен идентификатору в таблице базы данных в качестве основного ключа. Атрибут AutoiIncrent является ложным, что означает, что основное значение ключа не увеличивается.
Примечание. В базе данных имя склада объекта не может быть повторено, в противном случае браузер сообщит об ошибке.
Создать индексВ базе данных IndexedDB индекс создается с помощью определенного атрибута объекта данных.
var Research = IndexedDb.open ('dbname', 4); 'userId', autoIncrent: false});
Метод Store.CreateIndex получает три параметра. Значение - это объект JS. Уникальное свойство в этом объекте верно, что означает, что значение индекса не может быть одинаковым, то есть имя пользователя двух данных не может быть одинаковым, и false может быть одинаковым.
ДелаВ IndexedDB все операции данных могут выполняться только в делах. После успеха базы данных вы можете использовать метод транзакции объекта idbopendbrequest, чтобы открыть только чтение или чтение и написание транзакций.
var Research = IndexedDB.Open ('dbname', 5); tx.oncomplete = function (e) {console.log ('транзакция превышает');} tx.onabort = function (e) {console.log ('транзакция была приостановлена');}}
Метод транзакции DB. получает два параметра. Второй параметр - это режим транзакции. Может быть передана в чтения для чтения и письма.
Эксплуатационные данныеvar Research = IndexedDB.Open ('dbname', 5); ',', ',' Readwrite '); значение); Удалить (1); }}}}}}
Роль ADD и PUT аналогична. и использовать добавить, чтобы сохранить данные.
Данные поискаМы знаем, что выше может получить данные, используя метод get (), но необходимо основное значение. Если мы хотим получить диапазон данных, мы можем использовать курсор. Курсор был создан и открыт методом OpenCorsor на складе объекта.
Метод OpenCorser получает два параметра.
// BoundRange представляет коллекцию первичных значений ключей от 1 до 10 (включая 1 и 10). // Если третий параметр является истинным, это означает, что минимальное значение ключа не является 1. Если четвертый параметр является истинной, это означает, что он не содержит максимального значения клавиши 10, а по умолчанию есть falsevar boundrange = idbkeyrande.bound. (1, 10, false, false); Единственный параметр () - основное значение ключа, целочисленный тип. varmingrange = idbkeyrange.only (1); // Второй параметр является необязательным, что означает, что TRUE не включает в себя минимальный первичный ключ 1, FALSE включен, и по умолчанию LoseVar LogerRange = IdbkeyRange. основного значения ключа менее 10 сущности // Второй параметр является необязательным, что означает, что TRUE не включает в себя самый большой первичный ключ 10, а FALSE включает, а по умолчанию есть falsevar oversrange = idbkeyrange.upeperbound (10, false);
Второй параметр метода OpenCorser представляет собой направление чтения курсора.
var Research = IndexedDB.Open ('dbname', 6); ',', ',' Readwrite '); ; }
Когда есть данные, которые соответствуют условиям поиска, вы можете обновить данные с помощью метода обновления:
Cursor.updata ({userId: coursor.Key, имя пользователя: «Привет», возраст: 18});
Эти данные могут быть удалены с помощью метода удаления:
cursor.delete ();
Вы можете продолжать читать следующие данные с помощью метода Constinue, в противном случае вы не будете продолжать читать после прочтения первой части данных:
cursor.continue ();Суммировать
От подключения баз данных, создания складов объектов, индексов, до операции и поиска данных, завершите полный процесс данных доступа IndexedDB. Ниже через полный пример, чтобы лучше понять базу данных IndexedDB. Кодовый адрес: IndexedDB-Demo
Приведенное выше содержимое этой статьи.