Dojo / Абстракция данных

Настоящим проклятием вебразработки является необходимость создавать функции преобразования данных, возвращаемых сервером, в формат, удобный для использования внутри приложения. Несмотря на то что была разработана масса замечательных функций для разбора таких распространенных форматов представления данных, как CSV (commaseparated values – значения, разделенные запятыми) и JSON, тем не менее все еще приходится использовать большой объем шаблонного программного кода для приема данных от сервера, отправки обновленных значений обратно на сервер, синхронизации локальных данных с данными на сервере и т. д. В этой главе будут представлены функции инструментального набора Dojo, обеспечивающие единообразный интерфейс для работы с источниками данных независимо от того, где они находятся, как осуществляется доступ к ним на транспортном уровне и в каком формате они поставляют данные.
Статьи раздела 'Абстракция данных':
ItemFileReadStore
Хотя может оказаться, что в вашей конкретной ситуации лучше подошла бы собственная реализация dojo.data.api.Read, позволяющая повысить ее эффективность и лучше адаптировать к конкретным условиям, тем не менее в состав инструментар...
ItemFileWriteStore
Нет никаких сомнений, что хорошая абстракция способна значительно уменьшить объем рутинных действий, когда появляется необходимость обрабатывать и отображать данные, получаемые от сервера. Однако при этом вы не избавлены от необхо...
Анализ ItemFileReadStore
Чтобы поближе познакомиться с механизмом ItemFileReadStore, рассмотрим коллекцию иерархических данных в формате JSON, приведенную в примере 9.1, где каждый элемент определяется идентификатором name. Обратите внимание, что только к...
Запрос дочерних элементов
Приведенный пример данных с описаниями сортов кофе является достаточно примитивным, так как представляет собой плоский список элементов. Пример 9.6 несколько усложняет его, добавляя несколько дополнительных элементов с дочерними з...
Иерархии и ссылки в формате JSON
Механизм ItemFileReadStore не только реализует интерфейс Read, но и добавляет к нему некоторые свои особенности, включая свой формат данных, свой синтаксис запросов, свое средство десериализации значений атрибутов, свой способ иде...
Извлечение элемента по идентификатору
Извлечение элементов данных с помощью механизма ItemFileReadStore может быть произведено двумя способами, которые, впрочем, очень похожи между собой. Чтобы извлечь элемент по идентификатору, следует использовать функцию fetchItemB...
Извлечение элемента по произвольному критерию
Если необходимо извлечь элемент по атрибуту, не используемому для идентификации, вместо функции fetchItemByIdentity можно использовать более универсальную функцию fetch, как показано ниже: coffeeStore.fetch({ query: {name : "Spa...
Изменение существующего элемента
Вам часто придется использовать функцию setValue, приведенную в примере 9.8, для изменения значения атрибута элемента; ей передаются элемент, атрибут, который требуется изменить, и новое значение атрибута. Если элемент не имеет ат...
Изменение схемы работы с данными
Механизм взаимодействия с источниками данных, входящий в состав инструментария, нельзя отнести к разряду высоких технологий, но для его работы необходимо изменить модель представления данных, чтобы позволить рассматривать источник...
Интерфейс Identity
Интерфейс Identity основан на интерфейсе Read и предоставляет несколько дополнительных функций извлечения элементов на основе их идентификационной информации. Обратите внимание, что интерфейс Read не делает никаких предположений о...
Интерфейс Notification
Интерфейс Notification основан на интерфейсе Read и дополняет интерфейс Write, обеспечивая унифицированный интерфейс для организации обработки таких событий, как create, update и delete. Интерфейс Notification, в частности, очень ...
Интерфейс Read
Каждый из механизмов хранения данных должен реализовать интерфейс dojo.data.api.Read, потому что этот интерфейс обеспечивает возможность получения, обработки и использования данных, что является необходимой предпосылкой для любых ...
Интерфейс Write
Интерфейс Write дополняет интерфейс Read и включает средства создания, удаления и изменения элементов, что влечет за собой такие проблемы управления данными, как определение грязных (dirty) элементов, когда локальная копия в памят...
Обзор прикладного интерфейса доступа к данным
Базовая единица модуля dojo.data называется элементом, которая состоит из пар ключ/значение, называемых в терминологии dojo.data атрибутами и значениями атрибутов; для понимания сущности вы можете представлять себе элемент как обы...
Обработка уведомлений
В завершение этого раздела и всей главы мы коротко рассмотрим реализацию интерфейса Notification в механизме ItemFileWriteStore, потому что он очень удобен в случаях, когда необходимо реализовать обработку различных уведомлений on...
Основные реализации интерфейсов доступа к данным
В предыдущем разделе был дан обзор четырех основных интерфейсов доступа к данным, представленных на текущий момент. В этом разделе будут рассмотрены две реализации, входящие в состав библиотеки Core, – ItemFileReadStore и ItemFile...
Сериализация и десериализация собственных типов данных
Хотя до сих пор об этом ничего не говорилось, тем не менее пришла пора узнать о существовании одной дополнительной особенности, присутствующей в ItemFileReadStore и ItemFileWriteStore, которая позволяет упаковывать и распаковывать...
Собственные реализации операции сохранения
Вы уже наверняка подумали, что сохранение изменений в памяти – это, конечно, замечательно, но как быть, если необходимо вернуть данные серверу? Оказывается, механизм ItemFileWriteStore предоставляет точку подключения расширения _s...
Создание и удаление элементов
Как только вы разберетесь со всеми нюансами из предыдущего раздела, связанными с операцией изменения существующих элементов, у вас не будет никаких проблем с пониманием того, как выполняется добавление или удаление элементов из хр...

Страницы: 1