| Настоящим проклятием вебразработки является необходимость создавать функции преобразования данных, возвращаемых сервером, в формат, удобный для использования внутри приложения. Несмотря на то что была разработана масса замечательных функций для разбора таких распространенных форматов представления данных, как 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... |
| Создание и удаление элементов Как только вы разберетесь со всеми нюансами из предыдущего раздела, связанными с операцией изменения существующих элементов, у вас не будет никаких проблем с пониманием того, как выполняется добавление или удаление элементов из хр... |