包 | mx.data |
类 | public class DataStore |
继承 | DataStore EventDispatcher Object |
语言版本: | ActionScript 3.0 |
产品版本: | Adobe Digital Enterprise Platform Data Services for Java EE 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
commit()
方法都仅发送对该 DataService 所做的更改。
使用托管关联时,默认值会发生更改,以便共享同一组通道且使用相同的 use-transactions 标志值的所有 DataService 实例共享同一个 DataStore。如果正在共享 DataStore,对 commit()
方法的单一调用将应用于由共享该 DataStore 的所有 DataService 实例进行的所有更改。因使用托管关联而进行的默认值更改,目标之间的更改可能具有相关性,因此向服务器发送消息时,保留客户端的操作顺序很重要。
如果要更改默认值,可以创建自己的 DataStore,并手动将其指定给一个或多个 DataService 实例的 dataStore
属性。在您发出任何其它 DataService api 调用(如 fill 或 getItem)之前,首次初始化 DataService 时执行以上操作。注意:共享同一 DataStore 的所有 DataService 必须使用同一组通道和相同的 useTransactions
标志设置。设置不一致将引发错误。
属性 | 由以下参数定义 | ||
---|---|---|---|
autoCommit : Boolean
如果设置为 true,将立即提交修改 DataService 托管的状态的操作。 | DataStore | ||
autoCommitCollectionChanges : Boolean
当设置为 true 时,如果 autoCommit 属性为 true,将立即提交对集合所做的所有更改。 | DataStore | ||
autoCommitPropertyChanges : Boolean
当设置为 true 且 autoCommit 属性设置为 true 时,任何属性值更改都将自动导致“提交”该更改。 | DataStore | ||
autoConnect : Boolean
指示此服务是否应为需要连接的任何操作尝试连接。 | DataStore | ||
autoConnectInterval : int = 5000
当 autoConnect 属性为 true 时,前后两次尝试连接到服务器之间要等待的时间间隔(以毫秒为单位)。 | DataStore | ||
autoMerge : Boolean
控制如何将其它客户端所做的更改合并到此客户端的当前数据视图中。 | DataStore | ||
autoSaveCache : Boolean
可将数据和更改的本地缓存存储到磁盘。 | DataStore | ||
cacheID : String
提供对此服务的缓存标识的访问。 | DataStore | ||
channelSet : ChannelSet
提供对此 DataStore 使用的 ChannelSet 的访问。 | DataStore | ||
commitQueueMode : int
当客户端仍在等待先前提交批次的答复,而您对另一个批次调用 commit 时,控制何时将已提交的更改批次发送到服务器。 | DataStore | ||
commitRequired : Boolean [只读]
指示是否存在必须提交的挂起更新。 | DataStore | ||
conflicts : Conflicts [只读]
所有托管项的冲突列表。 | DataStore | ||
connected : Boolean [只读]
指示 DataStore 是否已连接。 | DataStore | ||
constructor : Object
对类对象或给定对象实例的构造函数的引用。 | Object | ||
currentBatch : MessageBatch [只读]
当 autoCommit=false 时等待提交到服务器的更改的当前批次。 | DataStore | ||
destination : String [只读]
此 DataStore 的目标。 | DataStore | ||
detectConflictsOnRefresh : Boolean = true
一个标志,可以设置为在刷新/重新连接操作期间禁用冲突检测。 | DataStore | ||
encryptLocalCache : Boolean
一些本地磁盘缓存存储实现支持存储数据加密。 | DataStore | ||
fallBackToLocalFill : Boolean
此标志确定当应用程序断开连接时是否对本地存储进行查询。 | DataStore | ||
identifier : String
此 DataStore 的标识。 | DataStore | ||
ignoreCollectionUpdates : Boolean
指示是否忽略对托管集合所做的更改,而不针对提交与服务器通信。 | DataStore | ||
isInitialized : Boolean [只读]
指示此 DataStore 何时进行初始化且可供使用。 | DataStore | ||
mergeRequired : Boolean [只读]
指示是否存在必须合并的挂起更改。 | DataStore | ||
priority : int
DataStore 所发送的消息的默认消息优先级。 | DataStore | ||
processingServerChanges : Boolean
指示当前是否将推送的服务器更改合并到托管对象的客户端视图中。 | DataStore | ||
requestTimeout : int
提供对操作的请求超时(以秒为单位)的访问。 | DataStore | ||
restoreCommittedUnsentBatchesOnFault : Boolean = false
如果客户端在处理消息时收到错误,则将此属性设置为 true 会使其“取消提交”任何已提交但尚未发送到服务器的批次。 | DataStore | ||
saveCacheMinIntervalMillis : int = 0
可以设置该时间间隔来降低保存缓存的频率。 | DataStore | ||
throwErrorOnIDChange : Boolean = true
一个标志,可以将其设置为 false 以还原在 UID 属性发生更改时记录错误但不引发错误的 LiveCycle Data Services 2.6 行为。 | DataStore | ||
uncommittedBatches : ArrayCollection [只读]
当前未提交的 MessageBatches 列表。 | DataStore |
方法 | 由以下参数定义 | ||
---|---|---|---|
DataStore(destination:String, useTransactions:Boolean, adapter:DataServiceAdapter = null, offlineAdapter:DataServiceOfflineAdapter = null)
通常会自动为您创建 DataStore,但您也可以创建自己的 DataStore 并将其指定给 DataService 的 dataStore 属性。 | DataStore | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
使用 EventDispatcher 对象注册事件侦听器对象,以使侦听器能够接收事件通知。 | EventDispatcher | ||
提交由此 DataStore 管理的集合和项的挂起更改。 | DataStore | ||
指示在要提交的特定对象中是否存在挂起的更新。 | DataStore | ||
强制此服务尝试连接到远程目标。 | DataStore | ||
createBatch(itemsOrCollection:Array = null, cascadeCommit:Boolean = false, properties:Object = null):MessageBatch
获取此操作指定的所有更改,创建一个新的 MessageBatch 并将该批次放入 uncommittedBatches 列表中。 | DataStore | ||
强制使用此数据存储的所有数据服务断开连接。 | DataStore | ||
将事件调度到事件流中。 | EventDispatcher | ||
此方法将使用先前在应用程序中使用的所有缓存标识填充指定的 ListCollectionView。 | DataStore | ||
检查 EventDispatcher 对象是否为特定事件类型注册了任何侦听器。 | EventDispatcher | ||
表示对象是否已经定义了指定的属性。 | Object | ||
初始化 DataStore,包括初始化所有已连接的 ConcreteDataService 实例的元数据。 | DataStore | ||
表示 Object 类的实例是否在指定为参数的对象的原型链中。 | Object | ||
将用户从当前目标中注销。 | DataStore | ||
将所有挂起更新合并到托管对象集中。 | DataStore | ||
表示指定的属性是否存在、是否可枚举。 | Object | ||
重新访存客户端上托管的所有数据。 | DataStore | ||
释放客户端上托管的所有数据。 | DataStore | ||
从 EventDispatcher 对象中删除侦听器。 | EventDispatcher | ||
还原此 DataStore 管理的所有 DataService 的所有挂起(未提交)更改。 | DataStore | ||
还原指定托管集合中所有项的所有挂起(未提交)更改。 | DataStore | ||
为此 DataStore 目标设置凭据。 | DataStore | ||
设置循环操作动态属性的可用性。 | Object | ||
为此 DataStore 目标的第三方设置凭据。 | DataStore | ||
返回此对象的字符串表示形式,其格式设置遵守区域设置特定的约定。 | Object | ||
返回指定对象的字符串表示形式。 | Object | ||
返回指定对象的原始值。 | Object | ||
检查是否用此 EventDispatcher 对象或其任何祖代为指定事件类型注册了事件侦听器。 | EventDispatcher |
事件 | 摘要 | 由以下参数定义 | ||
---|---|---|---|---|
[广播事件] Flash Player 或 AIR 应用程序获得操作系统焦点并变为活动状态时将调度此事件。 | EventDispatcher | |||
如果在此客户端上的挂起更改和另一客户端提交的更改之间检测到冲突,或由此客户端结果提交的更改在远程目标检测到冲突错误,则会调度此事件。 | DataStore | |||
[广播事件] Flash Player 或 AIR 应用程序失去操作系统焦点并变为非活动状态时将调度此事件。 | EventDispatcher | |||
当 commit 调用返回错误时,将调度 FaultEvent.FAULT 事件。 | DataStore | |||
当 commit 调用成功返回时,将调度 ResultEvent.RESULT 事件。 | DataStore |
常量 | 由以下参数定义 | ||
---|---|---|---|
CQ_AUTO : int = 1 [静态]
指定此属性可检查任何未处理批次和要提交的下一批次之间是否存在简单相关性。 | DataStore | ||
CQ_NOWAIT : int = 3 [静态]
指定此属性可立即发送第二个批次,不检查相关性。 | DataStore | ||
CQ_ONE_AT_A_TIME : int = 0 [静态]
指定此属性将等待上一个批次完成后再提交新的批次。 | DataStore |
autoCommit | 属性 |
autoCommit:Boolean
语言版本: | ActionScript 3.0 |
产品版本: | Adobe Digital Enterprise Platform Data Services for Java EE 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
如果设置为 true
,将立即提交修改 DataService 托管的状态的操作。如果设置为 false
,您必须显式调用 commit()
方法来将更改发送到服务器。
默认值为 true。
实现
public function get autoCommit():Boolean
public function set autoCommit(value:Boolean):void
autoCommitCollectionChanges | 属性 |
autoCommitCollectionChanges:Boolean
语言版本: | ActionScript 3.0 |
产品版本: | Adobe Digital Enterprise Platform Data Services for Java EE 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
当设置为 true
时,如果 autoCommit
属性为 true
,将立即提交对集合所做的所有更改。当设置为 false
时,不会立即提交对集合执行的任何添加/删除操作。
默认值为 true。
实现
public function get autoCommitCollectionChanges():Boolean
public function set autoCommitCollectionChanges(value:Boolean):void
autoCommitPropertyChanges | 属性 |
autoCommitPropertyChanges:Boolean
语言版本: | ActionScript 3.0 |
产品版本: | Adobe Digital Enterprise Platform Data Services for Java EE 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
设置为 true
且 autoCommit
属性设置为 true
时,任何属性值更改都将自动导致“提交”该更改。若为 false
,则在 VO 上更改该属性将不会自动导致 commit 调用。相反,若要提交更新,您可以显式调用 commit()
方法或调用 DataManager.updateItem()
方法仅将更改提交给该项。
默认值为 true。
实现
public function get autoCommitPropertyChanges():Boolean
public function set autoCommitPropertyChanges(value:Boolean):void
autoConnect | 属性 |
autoConnect:Boolean
语言版本: | ActionScript 3.0 |
产品版本: | Adobe Digital Enterprise Platform Data Services for Java EE 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
指示此服务是否应为需要连接的任何操作尝试连接。如果该服务断开连接并且 autoConnect
设置为 true
,则 fill()
、getItem()
和 count()
等操作将尝试连接。使用此属性可以控制偶尔连接的应用程序行为。
实现
public function get autoConnect():Boolean
public function set autoConnect(value:Boolean):void
autoConnectInterval | 属性 |
public var autoConnectInterval:int = 5000
语言版本: | ActionScript 3.0 |
产品版本: | Adobe Digital Enterprise Platform Data Services for Java EE 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
当 autoConnect
属性为 true
时,前后两次尝试连接到服务器之间要等待的时间间隔(以毫秒为单位)。
默认值为 5000。
autoMerge | 属性 |
autoMerge:Boolean
语言版本: | ActionScript 3.0 |
产品版本: | Adobe Digital Enterprise Platform Data Services for Java EE 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
控制如何将其它客户端所做的更改合并到此客户端的当前数据视图中。如果此属性为 false
,则消息将排队等候直到应用程序显式调用 merge()
方法。如果此属性为 true
,则只要进行更改就会被应用。如果客户端中包含的对某项所做的挂起未提交更改与合并的更改冲突,则将生成一个冲突,并将其添加到此客户端的未解决冲突列表中。您可以侦听此属性的更改事件,以在需要合并时获得通知。
实现
public function get autoMerge():Boolean
public function set autoMerge(value:Boolean):void
autoSaveCache | 属性 |
autoSaveCache:Boolean
语言版本: | ActionScript 3.0 |
产品版本: | Adobe Digital Enterprise Platform Data Services for Java EE 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
可将数据和更改的本地缓存存储到磁盘。如果 autoSaveCache
为 true
,则每次进行更改或返回远程请求时,数据都会保存到磁盘中。如果由于磁盘已满或写入权限被拒绝而在保存数据时遇到问题,则将调度 FaultEvent
或引发 Fault
。将此值设置为 false
(默认值),则不会将任何数据或更改保存到磁盘。要强制将当前数据和更改保存到本地,可使用 saveCache
方法。
实现
public function get autoSaveCache():Boolean
public function set autoSaveCache(value:Boolean):void
相关 API 元素
cacheID | 属性 |
cacheID:String
语言版本: | ActionScript 3.0 |
产品版本: | Adobe Digital Enterprise Platform Data Services for Java EE 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
提供对此服务的缓存标识的访问。在执行任何要求与本地磁盘中存储的数据进行交互的操作之前,必须先设置缓存标识。如果未设置缓存标识,则所有缓存方法和属性都会被认为不一致,而且在执行任何需要本地磁盘中的数据的操作期间会引发 DataServiceError
。此属性为本地存储的数据提供唯一的“会话”标识。开发人员必须将此属性设置为应用程序的唯一值。null
值或空字符串表示未进行设置。
实现
public function get cacheID():String
public function set cacheID(value:String):void
channelSet | 属性 |
channelSet:ChannelSet
语言版本: | ActionScript 3.0 |
产品版本: | Adobe Digital Enterprise Platform Data Services for Java EE 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
提供对此 DataStore 使用的 ChannelSet 的访问。可手动构造和指定 ChannelSet,否则将动态创建 ChannelSet 以便为使用此 DataStore 的目标
应用配置好的 Channels。所有使用相同 DataStore 的 DataService 对象的 channelSet 都应该相同。
实现
public function get channelSet():ChannelSet
public function set channelSet(value:ChannelSet):void
commitQueueMode | 属性 |
commitQueueMode:int
语言版本: | ActionScript 3.0 |
产品版本: | Adobe Digital Enterprise Platform Data Services for Java EE 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
当客户端仍在等待先前提交批次的答复,而您对另一个批次调用 commit 时,控制何时将已提交的更改批次发送到服务器。如果将批次立即发送到服务器,且此批次的更改依赖于提交上一批次时服务器所做的更改,可能会引发问题。例如,您可能正在更新由第一批次中的服务器创建的项。如果客户端尚未接收服务器指定的标识,这次更新将不会包括该项的正确标识。如果第二批次始终等待第一批次完成,可能会增加执行一系列与时间有关的更改的时间(例如,如果多次更新光标位置)。
默认模式为 CQ_AUTO。此模式检查任何未完成的批次和要提交的下一批次之间的简单相关性。如果检查未发现相关性,将立即发送新批次。如果检查到存在依赖于未完成创建的更新或删除,则会在创建完成前一直保留此更新/删除。这就增加了每次提交时的开销,即检查相关性,但这通常也是另外两种模式(CQ_NOWAIT 和 CQ_ONE_AT_A_TIME)的折衷。
CQ_NOWAIT 会立即发送第二批次,不检查相关性。如果您正在为客户端上的新对象指定标识并需要重叠批次才能实现性能目标,则可以使用此模式。
CQ_ONE_AT_A_TIME 将始终等待上一批次完成后再提交新批次。此模式可确保服务器不会接收不包括处理上一批次时服务器所做的更改的更改批次,从而简化错误处理逻辑,它还确保如果处理一个批次时出错,只有在客户端上解决了该批次的错误之后,服务器才会继续接收下一批次。
默认值为 CQ_AUTO。
实现
public function get commitQueueMode():int
public function set commitQueueMode(value:int):void
commitRequired | 属性 |
conflicts | 属性 |
connected | 属性 |
currentBatch | 属性 |
currentBatch:MessageBatch
[只读] 语言版本: | ActionScript 3.0 |
产品版本: | Adobe Digital Enterprise Platform Data Services for Java EE 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
当 autoCommit=false
时等待提交到服务器的更改的当前批次。您可以使用此属性循环访问调用 commit()
方法时要应用的更改。可以独立于其它批次来提交或还原某一批次。整组未提交的批次存储在 uncommittedBatches
属性中。currentBatch
属性的值始终是 uncommittedBatches
列表中的最后一批次。
此属性可用作数据绑定的源。修改此属性后,将调度 propertyChange
事件。
实现
public function get currentBatch():MessageBatch
destination | 属性 |
detectConflictsOnRefresh | 属性 |
public var detectConflictsOnRefresh:Boolean = true
语言版本: | ActionScript 3.0 |
产品版本: | Adobe Digital Enterprise Platform Data Services for Java EE 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
一个标志,可以设置为在刷新/重新连接操作期间禁用冲突检测。在 LiveCycle Data Services 版本 2.6.1,没有对刷新进行冲突检测,因此您可以将其设置为 false
以还原 2.6.1 行为。
默认值为 true。
encryptLocalCache | 属性 |
encryptLocalCache:Boolean
语言版本: | ActionScript 3.0 |
产品版本: | Adobe Digital Enterprise Platform Data Services for Java EE 3.1 |
运行时版本: | Flash Player 9, AIR 1.1 |
一些本地磁盘缓存存储实现支持存储数据加密。将此标志设置为 true 可以为支持加密的本地存储启用加密。
实现
public function get encryptLocalCache():Boolean
public function set encryptLocalCache(value:Boolean):void
fallBackToLocalFill | 属性 |
fallBackToLocalFill:Boolean
语言版本: | ActionScript 3.0 |
产品版本: | Adobe Digital Enterprise Platform Data Services for Java EE 3.1 |
运行时版本: | Flash Player 9, AIR 1.1 |
此标志确定当应用程序断开连接时是否对本地存储进行查询。默认情况下,当将脱机适配器配置为支持动态查询执行时,调用 fill()
方法不会在应用程序断开连接时查询本地存储。如果 fallBackToLocalFill 设置为 true,则即使应用程序断开连接也查询本地存储。
实现
public function get fallBackToLocalFill():Boolean
public function set fallBackToLocalFill(value:Boolean):void
identifier | 属性 |
identifier:String
语言版本: | ActionScript 3.0 |
产品版本: | Adobe Digital Enterprise Platform Data Services for Java EE 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
此 DataStore 的标识。将此可选属性与缓存配置一起使用来唯一标识此 DataStore。此值必须独立于会话,也就是说,您不应该在运行时使用 UIDUtil.createUID() 等方法创建此标识符。如果没有指定此值,则将根据关联通道的服务器配置值来计算此值。
实现
public function get identifier():String
public function set identifier(value:String):void
ignoreCollectionUpdates | 属性 |
ignoreCollectionUpdates:Boolean
语言版本: | ActionScript 3.0 |
产品版本: | Adobe Digital Enterprise Platform Data Services for Java EE 3.1 |
运行时版本: | Flash Player 9, AIR 1.5 |
指示是否忽略对托管集合所做的更改,而不针对提交与服务器通信。
实现
public function get ignoreCollectionUpdates():Boolean
public function set ignoreCollectionUpdates(value:Boolean):void
isInitialized | 属性 |
isInitialized:Boolean
[只读] 语言版本: | ActionScript 3.0 |
产品版本: | Adobe Digital Enterprise Platform Data Services for Java EE 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
指示此 DataStore 何时进行初始化且可供使用。仅当使用运行时配置的应用程序或需要访问磁盘中本地缓存的数据的应用程序时,才需要此属性。
此属性可用作数据绑定的源。修改此属性后,将调度 propertyChange
事件。
实现
public function get isInitialized():Boolean
mergeRequired | 属性 |
priority | 属性 |
priority:int
语言版本: | ActionScript 3.0 |
产品版本: | Adobe Digital Enterprise Platform Data Services for Java EE 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
DataStore 所发送的消息的默认消息优先级。有效值为 0 到 9 之间的数字(0 表示优先级最低),值 -1 表示 DataStore 未设置优先级。请注意,如果已为消息定义了优先级,则所定义的优先级优先于此优先级。
实现
public function get priority():int
public function set priority(value:int):void
processingServerChanges | 属性 |
processingServerChanges:Boolean
语言版本: | ActionScript 3.0 |
产品版本: | Adobe Digital Enterprise Platform Data Services for Java EE 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
指示当前是否将推送的服务器更改合并到托管对象的客户端视图中。这种情况在 autoMerge 为 true 时随时出现。如果 autoMerge 为 false,则仅当您显式调用 merge 方法时才会对其进行设置。此标志旨在使您了解推送更改的异步服务器和用户按照您的 set 方法建立的服务器之间的区别。
此属性可用作数据绑定的源。修改此属性后,将调度 propertyChange
事件。
实现
public function get processingServerChanges():Boolean
public function set processingServerChanges(value:Boolean):void
requestTimeout | 属性 |
restoreCommittedUnsentBatchesOnFault | 属性 |
public var restoreCommittedUnsentBatchesOnFault:Boolean = false
语言版本: | ActionScript 3.0 |
产品版本: | Adobe Digital Enterprise Platform Data Services for Java EE 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
如果客户端在处理消息时收到错误,则将此属性设置为 true
会使其“取消提交”任何已提交但尚未发送到服务器的批次。如果将 commitQueueMode
属性设置为 ONE_AT_A_TIME
,并将此属性设置为 true
,则您一次只可以处理一批错误。否则,可能会接收一系列错误,这些错误解决起来更复杂。
默认值为 false。
saveCacheMinIntervalMillis | 属性 |
public var saveCacheMinIntervalMillis:int = 0
语言版本: | ActionScript 3.0 |
产品版本: | Adobe Digital Enterprise Platform Data Services for Java EE 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
可以设置该时间间隔来降低保存缓存的频率。当 autoSaveCache
属性为 true
时,LiveCycle Data Services 会在每次更改后保存缓存。如果有一个较大的缓存,则这可能会代价很大,这样您可能希望降低保存缓存的频率。如果将此属性设置为 1000 毫秒,则保存该缓存的频率不超过每秒一次。
默认值为 0。
throwErrorOnIDChange | 属性 |
public var throwErrorOnIDChange:Boolean = true
语言版本: | ActionScript 3.0 |
产品版本: | Adobe Digital Enterprise Platform Data Services for Java EE 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
一个标志,可以将其设置为 false
以还原在 UID 属性发生更改时记录错误但不引发错误的 LiveCycle Data Services 2.6 行为。
默认值为 true。
uncommittedBatches | 属性 |
uncommittedBatches:ArrayCollection
[只读] 语言版本: | ActionScript 3.0 |
产品版本: | Adobe Digital Enterprise Platform Data Services for Java EE 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
当前未提交的 MessageBatches 列表。要保持数据的完整性,通常不应该改变操作的顺序,因此该列表为只读列表。通过调用 createBatch()
方法创建一个新批次。此方法会在 uncommittedBatches
列表的末尾添加新批次,并将 currentBatch
设置为该列表的最后一个元素。
这些属性可绑定,因此您可以观察特定批次中的 commitRequired
标志以查看其中是否存在更改,或者绑定项属性以获得等待作为该批次部分内容提交的 MessageCacheItems 列表。
此属性可用作数据绑定的源。修改此属性后,将调度 propertyChange
事件。
实现
public function get uncommittedBatches():ArrayCollection
DataStore | () | 构造函数 |
public function DataStore(destination:String, useTransactions:Boolean, adapter:DataServiceAdapter = null, offlineAdapter:DataServiceOfflineAdapter = null)
语言版本: | ActionScript 3.0 |
产品版本: | Adobe Digital Enterprise Platform Data Services for Java EE 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
通常会自动为您创建 DataStore,但您也可以创建自己的 DataStore 并将其指定给 DataService 的 dataStore
属性。为此,必须确保共享同一数据存储的所有数据服务使用相同的通道集,并使用相同的 use-transactions
配置设置值。使用此构造函数创建 DataStore,其中目标参数包含某一使用此数据存储的 DataService 的目标。仅用于查找通道集。您还应该为此数据存储提供 use-transactions
标志的值。
destination:String — 目标。
| |
useTransactions:Boolean — true 以使用事务。
| |
adapter:DataServiceAdapter (default = null ) — 适配器。
| |
offlineAdapter:DataServiceOfflineAdapter (default = null ) — 本地缓存支持的脱机适配器。
|
commit | () | 方法 |
public function commit(itemsOrCollections:Array = null, cascadeCommit:Boolean = false):mx.rpc:AsyncToken
语言版本: | ActionScript 3.0 |
产品版本: | Adobe Digital Enterprise Platform Data Services for Java EE 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
提交由此 DataStore 管理的集合和项的挂起更改。如果 autoCommit
属性为 true
,则不会使用事务,并且不需要调用此方法。要使用事务,请将 autoCommit
属性设置为 false
,并直接调用此方法以提交一批更改。通常,只需调用不包含自变量的“commit()”,即可提交所有挂起的更改。可以提供可选的自变量来提交挂起更改的子集。
必须首先解决所有未解决的冲突,然后才能提交对 DataStore 中的任何项所做的更改。
如果组装器配置为将 use-transactions 设置为 true,则会自动提交所有更改。如果任一操作失败,则不会应用该批次中的任何操作。如果将 use-transactions 设置为 false,则单独提交各个操作,直到发生失败(此时处理将停止)为止。将应用出错之前发生的任何更改,但不会应用出错之后发生的任何更改。如果在处理某个批次时出现错误,则将更改放回到未提交的队列中。如果要删除导致错误的更改,则需要调用 revertChanges。
默认情况下,commit 方法将提交已为此 DataStore 创建、修改和删除的所有项的所有挂起更改。如果要提交这些更改的子集,则可以指定托管 ArrayCollection 实例和/或托管项的组合,以定义要在该批次中包含的更改子集。对于指定的各个数组集合,无论是更改其中项的成员身份或顺序,还是更改其中的项,都会提交相应的更改。您还可以指定各个托管项的列表,以便只提交对这些项进行的更改。如果在 itemsOrCollections 参数中指定了任何不是托管集合或托管项的对象,则会引发 DataServiceError。
如果使用 itemsOrCollections 参数,并且您的项具有引用其它项的关联属性,则可以使用 cascadeCommit 参数控制是否也在该批次中包含对关联项进行的更改。例如,如果在项参数中指定了一个 Group 项,并且 Group 实例具有一个在 cascadeCommit 为 true 时引用 Person 实例列表的成员属性,则对任何 Person 实例的更改也将包含在提交的更改集中。如果 cascadeCommit 为 false,则只包含对 Group 进行的更改。使用 cascadeCommit=true 可确保该批次中包含所有相关更改。
参数
itemsOrCollections:Array (default = null ) — 这是一个可选参数,该参数在您希望提交所有挂起更改时默认为 null。如果要提交挂起更改的子集,可使用此自变量指定托管 ListCollectionView 实例和/或托管项的列表。ListCollectionView 对象通常是您提供给 fill-method 的 ArrayCollection。适用于此方法的项是该项的任何托管版本。这些项是从 getItem、createItem 中或使用 getItemAt 方法从托管集合中检索到的任何项。将仅提交由此数组中的任意值定义的项的更改。
| |
cascadeCommit:Boolean (default = false ) — 如果为 true ,则还会提交对此列表中提供的所有关联项所做的更改。
|
mx.rpc:AsyncToken — ResultEvent.RESULT 或 FaultEvent.FAULT 的 call 属性中返回的 AsyncToken。可将定制数据附着到此对象,稍后在事件处理阶段再对其进行检查。如果没有对相关项进行任何更改,则返回 null 而不是 AsyncToken。
|
commitRequiredOn | () | 方法 |
connect | () | 方法 |
public function connect():mx.rpc:AsyncToken
语言版本: | ActionScript 3.0 |
产品版本: | Adobe Digital Enterprise Platform Data Services for Java EE 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
强制此服务尝试连接到远程目标。此方法可与 autoConnect
属性和 disconnect()
方法一起使用来控制连接状态。
mx.rpc:AsyncToken — 对标记的 AsyncToken 引用,该标记将在从此服务调度的结果或错误事件中标识此操作。调用 connect() 时,将始终调用标记的结果处理程序,并且结果将是此服务的 connected 属性的当前值。
|
createBatch | () | 方法 |
public function createBatch(itemsOrCollection:Array = null, cascadeCommit:Boolean = false, properties:Object = null):MessageBatch
语言版本: | ActionScript 3.0 |
产品版本: | Adobe Digital Enterprise Platform Data Services for Java EE 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
获取此操作指定的所有更改,创建一个新的 MessageBatch 并将该批次放入 uncommittedBatches 列表中。如果 itemsOrCollection=null,则 currentBatch 中的整个消息集将置于新批次中,并且将创建新的批次作为 currentBatch。如果要划分一组更改以标记可作为一个单元提交或还原的工作块,则调用此方法。例如,如果要创建父对象,然后创建与该父对象相关联的子对象,我可能随后调用“createBatch”以将这两项更改都置于组中。如果执行了两次上述操作,则会产生两个批次,分别创建父对象和子对象。然后,您可以单独提交每组更改,只要这些更改是按批次的创建顺序进行提交的即可。您也可以还原最新的批次,而这不会更改第一个批次。简单多级“撤消”系统可以按照此方式实现,只需在每次操作后调用 createBatch(null) 即可。
可以使用 MessageBatch.properties 属性(或此方法的属性自变量)标记具有一组用户定义的属性的批次。此信息在使用脱机功能时与批次一同保存和还原,可用于标识客户端上的批次。置于此处的值必须可序列化(即具有 [RemoteClass] 的对象或类)。
如果为 itemsOrCollection 参数提供值,将创建新的批次,其中仅包括项或项集合的更改。如果将 cascadeCommit 设置为 true,对关联项所做的任何更改也将包含在拆分到新批次的消息组中。
参数
itemsOrCollection:Array (default = null ) — 可以是项数组,也可以是托管集合数组。如果是前者,则会将每个项的更改消息拆分到新批次中。如果是后者,则会将每个集合中的每个项的更改拆分到新批次中。如果为 null,则 currentBatch 中的整个消息集将置于新批次中,并且将创建新的批次作为 currentBatch。
| |
cascadeCommit:Boolean (default = false ) — 如果为 true,对关联项所做的任何更改也将包含在拆分到新批次的消息组中。
| |
properties:Object (default = null ) — 用于标记批次的用户定义的属性。
|
MessageBatch — 新创建的 MessageBatch。
|
disconnect | () | 方法 |
public function disconnect():void
语言版本: | ActionScript 3.0 |
产品版本: | Adobe Digital Enterprise Platform Data Services for Java EE 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
强制使用此数据存储的所有数据服务断开连接。
getCacheIDs | () | 方法 |
public function getCacheIDs(view:ListCollectionView):mx.rpc:AsyncToken
语言版本: | ActionScript 3.0 |
产品版本: | Adobe Digital Enterprise Platform Data Services for Java EE 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
此方法将使用先前在应用程序中使用的所有缓存标识填充指定的 ListCollectionView
。
参数
view:ListCollectionView — 对特定集合的 ListcollectionView 引用,该集合应使用先前在应用程序中使用的所有缓存标识进行填充。
|
mx.rpc:AsyncToken — 对标记的 AsyncToken 引用,该标记将在从此服务调度的结果或错误事件中标识此操作。
|
initialize | () | 方法 |
public function initialize(success:Function, failed:Function):void
语言版本: | ActionScript 3.0 |
产品版本: | Adobe Digital Enterprise Platform Data Services for Java EE 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
初始化 DataStore,包括初始化所有已连接的 ConcreteDataService 实例的元数据。成功完成或失败时调用适当的回调。如果已初始化数据存储,则会直接调用成功回调。回调必须是无参数函数。
参数
success:Function — 初始化成功完成时调用的回调。可以为 null。
| |
failed:Function — 初始化失败时调用的回调。可以为 null。
|
logout | () | 方法 |
public function logout():void
语言版本: | ActionScript 3.0 |
产品版本: | Adobe Digital Enterprise Platform Data Services for Java EE 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
将用户从当前目标中注销。调用此方法将注销所有关联的 DataService 实例。
merge | () | 方法 |
public function merge():void
语言版本: | ActionScript 3.0 |
产品版本: | Adobe Digital Enterprise Platform Data Services for Java EE 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
将所有挂起更新合并到托管对象集中。合并更改的过程可以检测冲突。
refresh | () | 方法 |
public function refresh():mx.rpc:AsyncToken
语言版本: | ActionScript 3.0 |
产品版本: | Adobe Digital Enterprise Platform Data Services for Java EE 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
重新访存客户端上托管的所有数据。
返回mx.rpc:AsyncToken — 可用于确定此操作何时产生结果或发生错误的标记。
|
release | () | 方法 |
public function release(clear:Boolean = true, copyStillManagedItems:Boolean = true):void
语言版本: | ActionScript 3.0 |
产品版本: | Adobe Digital Enterprise Platform Data Services for Java EE 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
释放客户端上托管的所有数据。这将为所有数据释放客户端上的项和查询缓存,同时取消订阅服务器上所有自动同步的数据。
参数
clear:Boolean (default = true ) — 指示是否应删除列表中的所有项。此外,不会创建任何项的副本。
| |
copyStillManagedItems:Boolean (default = true ) — 如果释放此数据服务后,来自其它数据服务的托管关联的引用可能会保留对其中某些托管对象的引用。在这种情况下,仍可以主动管理此数据服务中的某些托管集合。如果为此标志传递 true,将删除 (clear=true) 或克隆 (clear=flase) 这些引用。如果为此标志传入 false,则保留那些活动引用。使用 false 是清除系统状态的最快捷的方法。使用 true 可确保对从此数据服务检索到的集合或项的引用中不存在任何托管状态。
|
revertChanges | () | 方法 |
revertChangesForCollection | () | 方法 |
public function revertChangesForCollection(collection:ListCollectionView):Boolean
语言版本: | ActionScript 3.0 |
产品版本: | Adobe Digital Enterprise Platform Data Services for Java EE 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
还原指定托管集合中所有项的所有挂起(未提交)更改。
参数
collection:ListCollectionView — 要还原的集合。
|
Boolean — 如果还原了所有更改,则为 true
|
setCredentials | () | 方法 |
public function setCredentials(username:String, password:String, charset:String = null):void
语言版本: | ActionScript 3.0 |
产品版本: | Adobe Digital Enterprise Platform Data Services for Java EE 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
为此 DataStore 目标设置凭据。
参数
username:String — 目标的用户名。
| |
password:String — 目标的密码。
| |
charset:String (default = null ) — 对凭据进行编码时使用的字符集编码。默认值为 null,表示旧字符集 ISO-Latin-1。其它受支持的字符集仅有“UTF-8”。
|
setRemoteCredentials | () | 方法 |
public function setRemoteCredentials(username:String, password:String, charset:String = null):void
语言版本: | ActionScript 3.0 |
产品版本: | Adobe Digital Enterprise Platform Data Services for Java EE 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
为此 DataStore 目标的第三方设置凭据。
参数
username:String — 目标的用户名。
| |
password:String — 目标的密码。
| |
charset:String (default = null ) — 对凭据进行编码时使用的字符集编码。默认值为 null,表示旧字符集 ISO-Latin-1。其它受支持的字符集仅有“UTF-8”。
|
conflict | 事件 |
mx.data.events.DataConflictEvent
属性 DataConflictEvent.type =
mx.data.events.DataConflictEvent.CONFLICT
语言版本: | ActionScript 3.0 |
产品版本: | Adobe Digital Enterprise Platform Data Services for Java EE 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
如果在此客户端上的挂起更改和另一客户端提交的更改之间检测到冲突,或由此客户端结果提交的更改在远程目标检测到冲突错误,则会调度此事件。DataStore 为共享该 DataStore 的所有目标调度冲突事件,或者您可以侦听 DataService 中特定类型的冲突事件。当您的对象具有上述关联时使用 DataStore,此时您可能需要按特定顺序解决冲突才能保持这些关联的完整性。
CONFLICT
常量定义 conflict
事件的事件对象的 type
属性值。
事件对象的属性有下列值:
属性 | 值 |
---|---|
bubbles | false |
cancelable | false |
currentTarget | 用于定义处理该事件的事件侦听器的对象。例如,如果您使用 myButton.addEventListener() 注册某个事件侦听器,则 myButton 为 currentTarget 的值。 |
conflict | 保存发生的冲突的 Conflict 对象。 |
message | 与此事件相关联的 Message。 |
target | 调度该事件的 Object;它不一定是侦听该事件的 Object。使用 currentTarget 属性始终可以访问侦听事件的 Object。 |
fault | 事件 |
mx.rpc.events.FaultEvent
属性 FaultEvent.type =
mx.rpc.events.FaultEvent.FAULT
语言版本: | ActionScript 3.0 |
产品版本: | Adobe Digital Enterprise Platform Data Services for Java EE 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
当 commit 调用返回错误时,将调度 FaultEvent.FAULT
事件。
事件对象的属性有下列值:
属性 | 值 |
---|---|
bubbles | false |
cancelable | true,通过关联标记的 responder.fault 方法调用 preventDefault() 将防止服务或操作调度此事件。 |
currentTarget | 用于定义处理该事件的事件侦听器的对象。例如,如果您使用 myButton.addEventListener() 注册某个事件侦听器,则 myButton 为 currentTarget 的值。 |
fault | 包含导致此事件原因的详细信息的 Fault 对象。 |
message | 与此事件相关联的 Message。 |
target | 调度该事件的 Object;它不一定是侦听该事件的 Object。使用 currentTarget 属性始终可以访问侦听事件的 Object。 |
token | 表示方法调用的标记。用于异步完成标记模式。 |
result | 事件 |
mx.rpc.events.ResultEvent
属性 ResultEvent.type =
mx.rpc.events.ResultEvent.RESULT
语言版本: | ActionScript 3.0 |
产品版本: | Adobe Digital Enterprise Platform Data Services for Java EE 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
当 commit 调用成功返回时,将调度 ResultEvent.RESULT
事件。
事件对象的属性有下列值:
属性 | 值 |
---|---|
bubbles | false |
cancelable | true,通过关联标记的 responder.result 方法调用 preventDefault() 将防止服务或操作调度此事件。 |
currentTarget | 用于定义处理该事件的事件侦听器的对象。例如,如果您使用 myButton.addEventListener() 注册某个事件侦听器,则 myButton 为 currentTarget 的值。 |
message | 与此事件相关联的 Message。 |
target | 调度该事件的 Object;它不一定是侦听该事件的 Object。使用 currentTarget 属性始终可以访问侦听事件的 Object。 |
result | RPC 调用返回的结果。 |
token | 表示对方法单独调用的标记。用于异步完成标记模式。 |
CQ_AUTO | 常量 |
public static const CQ_AUTO:int = 1
语言版本: | ActionScript 3.0 |
产品版本: | Adobe Digital Enterprise Platform Data Services for Java EE 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
指定此属性可检查任何未处理批次和要提交的下一批次之间是否存在简单相关性。
CQ_NOWAIT | 常量 |
public static const CQ_NOWAIT:int = 3
语言版本: | ActionScript 3.0 |
产品版本: | Adobe Digital Enterprise Platform Data Services for Java EE 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
指定此属性可立即发送第二个批次,不检查相关性。
CQ_ONE_AT_A_TIME | 常量 |
public static const CQ_ONE_AT_A_TIME:int = 0
语言版本: | ActionScript 3.0 |
产品版本: | Adobe Digital Enterprise Platform Data Services for Java EE 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
指定此属性将等待上一个批次完成后再提交新的批次。
Tue Jun 12 2018, 11:04 AM Z