Require Busy dialog
Sent: Thursday, June 18, 2015 4:50 PM
研究一下进入MY OPPORTUNITY的时候,BUSY INDICATOR为什么消失的很晚(似乎是LIST和DETAIL都好了后才消失)
概括地说,Ross描述的busy dialog在LIST和DETAIL的数据都回来了才消失的,这个behavior是working as designed的。具体看下面的代码。
为了更深入理解busy dialog,可以看附件两个视频。
我在Opp header ETAG的后台实现里加了一个10s的延时。
n 第一个video timeout_1500.wmv: 虽然list和detail的数据都ready了,但是因为ETAG需要10s才能返回,整个UI被这个ETAG的request造成的busy dialog锁住了,直到10s后UI才能点击
n 第二个video是把默认的timeout从1500毫秒改成30秒,即busy dialog不会显示。从video里看出UI始终是可操作的,尽管后台的ETAG还没有回来。
这个busy dialog实际上也是一种保护措施。如果UI上某些操作必须依赖于最新的ETAG,采用这种方式可以让user同步的ETAG请求返回UI之前就能够进行操作,会造成state的inconsistency。
Key message we could find in the source code:
- after sap.ca.ui.utils.busydialog.requireBusyDialog() is called in application, we can only see the rotating wheel in UI after 1.5 seconds - defined in BUSYDIALOG_TIMEOUT.
- the requireBusyDialog and releaseBusyDialog must be called in pair. There is private variable _iRequiredCount maintained inside the implementation. When require function is called, _iRequiredCount++; release for _iRequiredCount–.
- it is obsolete. New application should use sap.m.BusyDialog instead.
Take the process to open Opportunity tile as example.
- The bindAggregation in S2.controller.js will trigger the Odata request sent to backend:
request url:
And connectionManager is responsible to call requireBusyDialog:
iRequiredCount changed from 0 to 1:
- OpportunityAttachment data is requested. ConnectionManager calls another requireBusyDialog, iRequiredCount changed from 1 tp 2:
- in detail view, ETAG refresh operations makes iRequiredCount changed from 2 to 3:
- At this time, the response of request in step1 has been returned to frontend, ConnectionManager calls releaseBusyDialog:
iRequiredCount changes from 3 to 2:
Since now iRequiredCount still > 0, the busyDialog will not be closed.
- the response for request in step2 is returnd, iRequiredCount changes from 2 to 1:
- the ETAG request sent in step3 has response now, iRequiredCount changes from 1 to 0:
now busy dialog is closed:
Require Busy dialog相关推荐
- SAP UI5 Require Busy dialog
Sent: Thursday, June 18, 2015 4:50 PM 研究一下进入MY OPPORTUNITY的时候,BUSY INDICATOR为什么消失的很晚(似乎是LIST和DETAIL都 ...
- SAP CRM Fiori busy dialog的工作原理
为了更深入理解busy dialog,可以看附件两个视频. 我在Opp header ETAG的后台实现里加了一个10s的延时. 第一个video timeout_1500.wmv: 虽然list和d ...
- 使用 Busy Dialog 动画阻止 SAP UI5 应用按钮短时间内快速被点击试读版
一套适合 SAP UI5 初学者循序渐进的学习教程 作者简介 Jerry Wang,2007 年从电子科技大学计算机专业硕士毕业后加入 SAP 成都研究院工作至今.Jerry 是 SAP 社区导师,S ...
- when busy dialog closed iDuration renderFioriFlower jQuery Animation closeL
Created by Wang, Jerry, last modified on Jun 29, 2015 要获取更多Jerry的原创文章,请关注公众号"汪子熙":
- SAP UI5 busy Dialog debug - 单步调试
Created by Wang, Jerry, last modified on Jul 04, 2015 要获取更多Jerry的原创文章,请关注公众号"汪子熙":
- SAP UI5 busy Dialog debug
# Created by Wang, Jerry, last modified on Jul 04, 2015 要获取更多Jerry的原创文章,请关注公众号"汪子熙":
- SAP UI5 busy dialog released more often than required
# Created by Wang, Jerry, last modified on Feb 03, 2015 要获取更多Jerry的原创文章,请关注公众号"汪子熙":
- Busy Dialog init - hashchange will call BusyDialog.open - flower
Created by Wang, Jerry, last modified on Jun 29, 2015 要获取更多Jerry的原创文章,请关注公众号"汪子熙":
- SAP UI5 busy dialog - SVG
Created by Wang, Jerry, last modified on Jun 29, 2015 要获取更多Jerry的原创文章,请关注公众号"汪子熙":
最新文章
- 头条面试归来,有些话想和Java程序员说!
- Android app被系统kill的场景
- 迭代器: isinstance
- 企业级业务系统开发实战-序言
- Hadoop搭建集群中输入hdfs namenode -format格式化节点时,提示:hdfs: command not found 解决办法
- iOS内存泄漏的常见情况
- 微信公众号开发--微信JS-SDK扫一扫功能
- Java中 volatile 关键字的最全总结,赶快给自己查缺补漏吧!
- [项目回顾]基于Annotation与SpringAOP的缓存简单解决方案
- Ubuntu 安装 Java EE
- 阶段2 JavaWeb+黑马旅游网_15-Maven基础_第3节 maven标准目录结构和常用命令_07maven常用命令...
- java 创建消息队列_java - 在Java中动态创建异步消息队列 - 堆栈内存溢出
- 大功率UWB模块 XZM3000 移植手册 《从DWM1000到XZM3000移植手册》
- 超燃!高效 MacBook 工作环境配置,超实用
- Nacos 国内镜像
- 深入理解BootStrap-- 面板(panel)
- 上传文件到到大数据平台
- Markdown表格中换行、合并单元格
- 短信验证码常见漏洞总结
- 优秀免费资源300+
热门文章
- 使用C#实现网络时间同步功能
- linux as3.0 sendmail SMTP 验证 成功总结
- vue 设置代理报错;occurred while trying to proxy request xxx
- maven+jenkins+sonar集成搭建
- activity中指定一页面动态设置软键盘弹出属性
- mysql数据存储7天_MySQL开启binlog并且保存7天有效数据
- 通俗易懂,买一次西瓜就懂 Python
- SAP UI5 Currency 数据类型的校验逻辑分析
- 如何给 Chrome 开发者工具设置 Material Design 风格的主题外观
- SAP Commerce Cloud Spartacus UI 的购物车 Cart 功能