云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

中间件_修改dns服务器_免费1年

小七 141 0

第一次在SAP社区写博客-希望我能做到这一点?

我和我的同事目前正在进行的项目是一个非常大的项目(铁路技术人员的维护应用程序):

我们正在用WinJS将UI5应用程序包装在UWP(通用Windows平台)应用程序中,大数据包括哪些内容,以调用设备API。未来我们可能会使用PWA应用程序(支持Windows以外的其他平台)

这个应用程序有一个同步机制,可以下载多个OData实体集离线存储在IndexedDB中:数据集非常大和复杂(需要计算和合并前端多个存储的数据

合并数据在前端当然是一个昂贵的操作,这迫使用户等待,直到数据准备就绪。

这方面的一个例子是我们所谓的"检查表"。检查表是一组技师必须进行的检查/测量/检查:

当您进入大楼时按下开关时,灯是否仍亮着?你进去时有气味吗?地板脏吗?

显然,这些只是一些示例检查,但检查表非常详细,而且有多个层次(我看到有一个层次深入到10个层次)(父子树)。

在某些屏幕(XML视图)中,我们需要进行一些数据组合,然后才能将结果显示给用户。

一些示例:

为选择字段加载可能的值基于其他选择字段中填写的值。我们正在显示的功能位置的表中的负载特性。计算我们复杂清单的树。(检查表越大,所需时间越长)

上述操作速度慢,通常会阻塞UI,淘客,并阻止用户与应用程序交互–因此我们使用Promises和Javascript Workers(以及内存缓存)来克服这些问题。

在UWP中,"慢"尤其明显,因为它仍然使用IndexedDB1.0!

承诺在SAP社区中提到过几次,大数据工具有哪些,所以我想和他们分享一个很酷的技巧。

我们有一个工作订单屏幕,其中多个操作可以包含检查表。如果我们在用户想要开始检查的时候加载这些检查表,他将不得不等待树被加载,他将盯着一个空白屏幕…–>一点都不友好!

如果我们已经向用户显示了Workorders屏幕,并在后台合并了检查表的数据,该怎么办。在完成树的计算之后,我们是否启用按钮来启动它们?(使用格式化程序!)

通过这种方式,网建站,技术人员可以与工单(开始/暂停)进行交互,并且在后台,已经为操作中的所有检查表加载了模型。

格式化程序功能不适用于Promises(尚未?)

触发格式化程序的一种方法是:

getView().getModel("workorder").setProperty("/bIsChecklistLoaded",true),当承诺被解析时(在控制器中),使格式化程序侦听bIsChecklistLoadedsetProperty将执行格式化程序触发器&一旦bischecklistloadded为true,按钮将变为可见。另一种方法是在模型上调用refresh函数请不要这样做:在复杂的应用程序中,刷新附加了大量格式化程序的模型会扼杀应用程序的响应能力!

由于我们的应用程序相当复杂,我们希望在对象属性上的数据准备就绪时触发格式化程序的简单方法(因此UI对这些事件作出响应)

示例如下!

查看代码:

控制器代码:

格式化程序代码:

一些示例屏幕:

分类是在线获取的(只有在连接可用时才显示)

在线查找数据需要一些时间,但为了通知用户有东西正在加载,我们将表设置为忙碌状态。

承诺解决后,我们用承诺的结果替换模型本身,触发格式化程序!

结论

这是一个非常好的方法,当数据在后台的对象模型上可用时,可以加载部分UI,云呢拿,无需在模型上添加大量布尔变量(这只会使您的代码无法读取)。

您可以在部分UI可用时加载它们–并且只要数据仍在加载,就可以阻止用户与它们进行交互)

请告诉我这是否有助于您,或者您发现了其他用途!

总结:如果您有任何意见或评论,请随时在评论中告诉我!也许你们还可以分享一些其他的很酷的技巧,你在UI5?–也许有一天他们会帮助我们?