是否可以 flush/refresh SAP Cloud Platform 中的特定离线 oData 实体?
Is it possible to flush/refresh specific offline oData entities in SAP Cloud Platform?
标准 flush/Refresh 离线 oData 函数在离线商店中的所有实体上执行。
这当然会对移动数据和性能产生影响。
有没有办法 FLUSH/REFRESH 仅在离线商店中的特定实体?
根据 refresh method 的文档:
Refresh the model.
This will reload all data stored in the model. This will check all
bindings for updated data and update the controls if data has been
changed.
Note: In contrast to an individual Binding refresh, the model refresh
ignores Binding-specific parameters/queries.
如果您只想获取模型中的特定条目,您应该查看方法 invalidateEntry
:
Invalidate a single entry in the model data.
Mark the selected entry in the model cache as invalid. Next time a
context binding or list binding is done, the entry will be detected as
invalid and will be refreshed from the server.
对于使用 iOS SDK 的离线 OData,download
命令有一个 withSubset
参数。使用它,您可以向定义查询添加过滤器,从而只下载特定条目。
您可以在方法的第三个参数中将要刷新或刷新的实体写为字符串数组,其中每个字符串都是您为 definingRequests 对象上的每个“entitySet”设置的名称。
假设您在创建商店时定义了它:
"definingRequests" : {
"foo" : "/fooSet",
"bar" : "/barSet"
}
那么,如果你只想刷新foo实体,刷新方法是这样的:
store.refresh(refreshCallback, errorCallback, ["foo"], progressCallback);
标准 flush/Refresh 离线 oData 函数在离线商店中的所有实体上执行。
这当然会对移动数据和性能产生影响。
有没有办法 FLUSH/REFRESH 仅在离线商店中的特定实体?
根据 refresh method 的文档:
Refresh the model.
This will reload all data stored in the model. This will check all bindings for updated data and update the controls if data has been changed.
Note: In contrast to an individual Binding refresh, the model refresh ignores Binding-specific parameters/queries.
如果您只想获取模型中的特定条目,您应该查看方法 invalidateEntry
:
Invalidate a single entry in the model data.
Mark the selected entry in the model cache as invalid. Next time a context binding or list binding is done, the entry will be detected as invalid and will be refreshed from the server.
对于使用 iOS SDK 的离线 OData,download
命令有一个 withSubset
参数。使用它,您可以向定义查询添加过滤器,从而只下载特定条目。
您可以在方法的第三个参数中将要刷新或刷新的实体写为字符串数组,其中每个字符串都是您为 definingRequests 对象上的每个“entitySet”设置的名称。
假设您在创建商店时定义了它:
"definingRequests" : {
"foo" : "/fooSet",
"bar" : "/barSet"
}
那么,如果你只想刷新foo实体,刷新方法是这样的:
store.refresh(refreshCallback, errorCallback, ["foo"], progressCallback);