sap.ca.ui.utils.busydialog scenario discussion

简介: Created by Jerry Wang, last modified on Jun 29, 2015

Created by Jerry Wang, last modified on Jun 29, 2015

Key message we could find in the source code:

1. 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.

2. 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--.

3. it is obsolete. New application should use sap.m.BusyDialog instead.


image.png

Take the process to open Opportunity tile as example.

1. The bindAggregation in S2.controller.js will trigger the Odata request sent to backend:

image.png

request url:

image.png

And connectionManager is responsible to call requireBusyDialog:

image.png

iRequiredCount changed from 0 to 1:

image.png

2. OpportunityAttachment data is requested. ConnectionManager calls another requireBusyDialog, iRequiredCount changed from 1 tp 2:


image.png

3. in detail view, ETAG refresh operations makes iRequiredCount changed from 2 to 3:

image.png

4. At this time, the response of request in step1 has been returned to frontend, ConnectionManager calls releaseBusyDialog:

image.png

iRequiredCount changes from 3 to 2:

image.png

Since now iRequiredCount still > 0, the busyDialog will not be closed.

image.png

5. the response for request in step2 is returnd, iRequiredCount changes from 2 to 1:

image.png

6. the ETAG request sent in step3 has response now, iRequiredCount changes from 1 to 0:

image.png

now busy dialog is closed:

image.png

test1:

 

在header ETAG的implementation里加了一个10秒的时延:测试结果是直到header ETAG的response回来之后,busy dialog才消失。

image.png

test2:将timeout从默认的1500ms改成30000ms:

sap.ca.ui.utils.BUSYDIALOG_TIMEOUT = 30000;

第一个video timeout_1500.wmv: 虽然list和detail的数据都ready了,但是因为ETAG需要10s才能返回,整个UI被这个ETAG的request造成的busy dialog锁住了,直到10s后UI才能点击

第二个video是把默认的timeout从1500毫秒改成30秒,即busy dialog不会显示。从video里看出UI始终是可操作的,尽管后台的ETAG还没有回来。


相关文章
SAP CRM Fiori note automatic delete deletion scenario
SAP CRM Fiori note automatic delete deletion scenario
151 0
SAP CRM Fiori note automatic delete deletion scenario
创建新的SAP CRM product search scenario - 如何在SAP CRM里实现自定义的产品搜索场景
创建新的SAP CRM product search scenario - 如何在SAP CRM里实现自定义的产品搜索场景
创建新的SAP CRM product search scenario - 如何在SAP CRM里实现自定义的产品搜索场景
How to use SAP CRM price determination in Quotation scenario
How to use SAP CRM price determination in Quotation scenario
119 0
How to use SAP CRM price determination in Quotation scenario
如何创建自己的SAP CRM产品主数据search scenario
Created by Jerry Wang, last modified on Oct 03, 2016
125 0
如何创建自己的SAP CRM产品主数据search scenario
sap.ca.ui.utils.busydialog scenario discussion
Created by Jerry Wang, last modified on Jun 29, 2015
sap.ca.ui.utils.busydialog scenario discussion
|
JavaScript Android开发
SAP UI5 view controller lifecycle discussion - onInit
Created by Jerry Wang, last modified on Aug 08, 2014
139 0
SAP UI5 view controller lifecycle discussion - onInit
SAP UI5 mock mode more discussion
Created by Wang, Jerry, last modified on May 22, 2015
SAP UI5 mock mode more discussion
SAP UI5 mock mode more discussion
Created by Wang, Jerry, last modified on May 22, 2015
102 0
SAP UI5 mock mode more discussion
|
6月前
|
前端开发 搜索推荐 开发者
SAP UI5 sap.m.Column 控件的 minScreenWidth 属性介绍
SAP UI5 sap.m.Column 控件的 minScreenWidth 属性介绍
|
6月前
|
JavaScript 前端开发 开发者
SAP UI5 控件 sap.m.ListBase 的 inset 属性的作用介绍
SAP UI5 控件 sap.m.ListBase 的 inset 属性的作用介绍