Пакет | mx.data |
Класс | public class DataService |
Наследование | DataService ![]() ![]() |
Подклассы | DataService |
Язык версии: | ActionScript 3.0 |
Версия продукта: | Adobe Digital Enterprise Platform Data Services for Java EE 3 |
Версии среды выполнения: | Flash Player 9, AIR 1.1 |
Экземпляр DataService создан с указанием требуемого адреса назначения. Адреса назначения обычно настраиваются в services-config.xml, но также могут быть настроены в динамическом режиме с конфигурацией среды выполнения, как в случае разработки на основе модели.
Существуют два разных набора методов, которые извлекают данные из указанного удаленного адреса назначения. Первый набор используется для управляемых объектов коллекции. Второй набор используется для отдельных управляемых объектов.
Метод DataService.fill()
используется для объектов, управляемых коллекцией. Этот метод заполняет ArrayCollection объектами, которыми управляет эта служба.
Чтобы получить объекты с одним управлением, используются методы DataService.getItem()
и DataService.createItem()
.
Если предварительно заполненная коллекция ArrayCollection больше не требуется или элементы в этой коллекции больше не должны получать или создавать обновления, вызовите метод DataService.releaseCollection()
.
Если элемент, для получения которого использовался DataService.getItem()
или DataService.createItem()
, больше не требуется или не должен получать или создавать обновления, вызывается метод DataService.releaseItem()
. Методы DataService.createItem()
и DataService.getItem()
возвращают экземпляр ItemReference, который может использоваться для выпуска определенного экземпляра объекта с одним управлением. В отличие от метода DataService.releaseItem()
, при вызове метода ItemReference.releaseItem()
выпускается определенный экземпляр объекта с одним управлением. Метод DataService.releaseItem()
выпускает первый объект с одним управлением, идентификатор которого соответствует указанному идентификатору. Пока число вызовов методов DataService.getItem()
и DataService.createItem()
совпадает с числом вызовов метода DataService.releaseItem()
, проблем не возникает.
Подключение к удаленному адресу назначения создается автоматически при первом вызове любого метода, для которого требуется подключение. Например, при вызове метода DataService.fill()
или DataService.commit()
с неподтвержденными обновлениями экземпляр DataService пытается установить соединение с удаленным адресом назначения. Для принудительного отключения экземпляра DataService вызывается метод DataService.disconnect()
. Метод DataService.disconnect()
может использоваться для удаления ресурсов, которые больше не требуются, в удаленном адресе назначения. Вызов метода DataService.disconnect
может привести к разрыву соединения, поскольку это физическое соединение могут использовать другие службы.
Привязываемое свойство connected
указывает текущее состояние соответствующего подключения DataService.
Если в удаленном адресе назначения для операции объявлены ограничения системы защиты, необходимо предоставить учетные данные посредством вызова метода DataService.setCredentials()
. Вызов метода DataService.setCredentials()
преобразуется в команду для входа в систему в удаленном адресе назначения. Чтобы изменить учетные данные или объявить недействительным текущий сеанс, вызывается метод DataService.logout()
, который выпускает все локальные управляемые данные. Вызов метода DataService.logout()
эквивалентен вызову метода DataService.release()
.
Каждый экземпляр DataService имеет свойство dataStore
, возвращающее объект типа mx.data.DataStore
. Этот объект сохраняет неподтвержденные изменения для одного или нескольких экземпляров DataService. По умолчанию экземпляр DataService совместно использует один экземпляр DataStore с другими экземплярами DataService, если они контролируют свойства ассоциации и совместно используют один набор каналов. При наличии общего доступа к экземпляру DataStore вызов метода commit()
в одном экземпляре DataService передает изменения во все экземпляры DataService, использующие общедоступный экземпляр DataStore. Это позволяет сохранить порядок операций при наличии зависимостей между изменениями в связанных экземплярах DataService.
Экземпляры DataService и DataStore отправляют события результата и ошибки для всех операций, которые требуют наличия удаленного вызова.
Примечание. При создании двух экземпляров DataService, ссылающихся на тот же самый адрес назначения, оба экземпляра совместно используют одну коллекцию управляемых объектов и передают один набор событий. Например, если добавить прослушиватель событий к одному экземпляру DataService для адреса назначения и использовать другой экземпляр для инициирования операции, то первый экземпляр DataService также будет получать эти события. Каждая операция, инициируемая в экземпляре DataService, возвращает экземпляр AsyncToken. Можно добавить ответчик события к этому экземпляру AsyncToken для получения события результата, определенного для этой операции. При этом подходе часто создается более чистый код, чем при добавлении обработчика событий результата или ошибки для указанного адреса назначения.
Для экземпляра DataService можно использовать привязку данных в свойствах любого управляемого объекта. При совершении удаленной операции для любого управляемого объекта экземпляр DataService также оправляет событие message. Например, когда удаленный процесс обновляет локально управляемый элемент, сообщение передается во все экземпляры DataService, которые управляют этим элементом. Это сообщение передается как событие MessageEvent.MESSAGE
.
Событие конфликта отправляется, если обнаружен конфликт в удаленном адресе назначения после изменения, передаваемого экземпляром DataService, или вследствие изменения, которое конфликтует с локальным неподтвержденным изменением. События конфликта обрабатываются посредством прослушивания DataConflictEvent.CONFLICT
. Привязка данных используется для обновления элементов управления пользовательского интерфейса при связывании свойства DataService.conflicts.resolved
.
Класс DataService поддерживает следующие режимы конфигурирования синхронизации данных:
-
autoCommit
– если true, то каждое изменение при обнаружении немедленно отправляется на удаленный адрес назначения. Еслиfalse
, то необходимо выполнить явный вызов методаcommit()
. Связываемое свойствоDataService.commitRequired
используется при наличии неподтвержденных изменений. -
autoSyncEnabled
– влияет на выполненные вызовыfill()
,getItem()
или вызовы методаcreateItem()
и определяет, прослушивают ли управляемые экземпляры изменения, выполненные в этих объектах другими клиентами, или с помощью сервера DataServiceTransaction помещают API в удаленном адресе назначения. -
autoMerge
– позволяет управлять немедленным применением полученных из удаленного адреса назначения изменений или их постановкой в очередь до выполнения вызова методаDataService.merge()
.
Используйте метод DataService.revertChanges()
, чтобы отменить изменения для определенного элемента или для всех элементов. При возникновении ошибки операции удаленного адреса назначения подтвержденные изменения помещаются в очередь неподтвержденных изменений. Таким образом сохраняется синхронизация этих данных с данными удаленного адреса назначения. Если изменения внесены по ошибке, то для отмены изменений, как правило, выполняется вызов методаDataService.revertChanges()
как элемента обработчика ошибки.
Класс mx.data.mxml.DataService является специфичным для MXML подклассом класса mx.data.DataService, который разрешает привязку к свойствам экземпляра DataService.
Синтаксис MXML
The <mx:DataService> element accepts the following attributes:
<mx:DataService Properties autoCommit="true" autoMerge="true" autoSaveCache="false" autoSyncEnabled="true" conflictDetector="No default." dataStore="No default." destination="No default." pageSize="No default." id="No default." Events conflict="No default." fault="No default." message="No default." propertyChange="No default." result="No default." />
Связанные элементы API
mx.data.Conflicts
mx.data.Conflict
mx.data.ItemReference
mx.data.IManaged
mx.data.utils.Managed
mx.data.IChangeObject
Свойство | Определено | ||
---|---|---|---|
![]() | constructor : Object
Ссылка на объект класса или функцию конструктора для данного экземпляра объекта. | Object |
Метод | Определено | ||
---|---|---|---|
![]() |
Показывает, определено ли заданное свойство для объекта. | Object | |
![]() |
Показывает, есть ли экземпляр класса Object в цепи прототипов объекта, заданного в качестве параметра. | Object | |
![]() |
Показывает наличие заданного свойства и его перечисляемость. | Object | |
![]() |
Задает доступность динамического свойства для операций цикла. | Object | |
![]() |
Возвращает строковое представление этого объекта, отформатированного в соответствии со стандартами, принятыми для данной локали. | Object | |
![]() |
Возвращает строковое представление заданного объекта. | Object | |
![]() |
Возвращает элементарное значение заданного объекта. | Object |
Tue Jun 12 2018, 11:34 AM Z