Извлечение объектов

Извлечение объектов.

Если запись объекта в хранилище завершается успешно, срабатывает событие success и вызывается функция show(). В коде из листинга 11.6 мы объявили эту функцию внутри анонимной функции. Это нужно для того, чтобы иметь возможность передавать ей переменную keyword. Теперь воспользуемся этим значением для считывания ранее сохраненного объекта.

Листинг 11.7. Отображение содержимого нового объекта

Function show(keyword){

Var transaction=db. transaction([‘movies’]); var objectstore=transaction. objectStore(‘movies’); var request=objectstore. get(keyword); request. addEventListener(‘success’, showlist, false);

Function showlist(e){

Var result=e. result || e. target. result; databox. innerHTML='<div>’+result. id+’ — ‘+result. name+’ -‘+result. date+'</div>’;

}

Код из листинга 11.7 создает допускающую только чтение транзакцию (транзакцию типа READ_ONLY) и с помощью метода get() извлекает объект с указанным ключевым словом. Мы не объявляем тип транзакции явно, так как тип READ_ONLY используется по умолчанию.

Метод get() возвращает объект из хранилища по условию id=keyword. Например, если мы добавим фильм «The Godfather» из нашего списка, то в переменной keyword окажется значение tt0068646. Функция show() получает это значение и передает методу get() для извлечения информации о фильме «The Godfather». Как видите, этот код выполняет исключительно иллюстративную функцию, поскольку всего лишь возвращает только что добавленный фильм.

Так как все операции выполняются в асинхронном режиме, для вывода этой информации на экран нам требуются две функции. Функция show() создает транзакцию, а функция showlist() в случае успешного завершения транзакции отображает значения свойств на экране. Мы снова прослушиваем только событие success, однако в случае ошибки данная операция также может запустить событие error.

Функция showlist() получает объект, поэтому для доступа к его свойствам нам нужны представляющая его переменная и название свойства (например, result. id). Переменная result представляет собой объект, а id — это одно из его свойств.

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

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