Yesterday I was challenged by my colleague: in the CRM Fiori application “My Opportunity”, although the OData request for logo url is set as false ( means Synchronous ), why we still observe in UI that this request is done like Asynchronously?
For the complete story about Image display logic in Fiori, please refer to this blog: CRM Fiori Application – how is image maintained and displayed in Fiori UI.
My colleague’s doubt is that he observed even the response of image url is not returned by backend, still end user could continue to work on UI – it seems UI is not blocked so my colleague considered that the request is done in an Asynchronous way.
I just would like to share with you how I persuade him to accept this is really an Synchronous request.
The key idea here is: We are doing test in our internal system, the request for image url is almost immediately returned ( less than 2 seconds ), so it is really difficult to judge by eye whether it is synchronous or asynchronous.
As a result, I add another 13 seconds’ latency in OData service implementation:
Synchronous mode
Afterwards the synchronous behavior is quite obvious now. I click one item in navigation list to trigger the synchronous request for Image url retrieval. And after that, I cannot do any operation on UI – it is completely freezed.
Asynchronous mode
Then I change the manual latency to 20 seconds and retest the UI.
Now every time I click one opportunity in the navigation list, still one http request for image logo is sent out. Compared with synchronous mode, this time the UI is not blocked – I can continue to work on UI without waiting for the response.
This asynchronous behavior could also easily be found in the timechart in Chrome network:
Conclusion
code is correct, our eye is wrong. Any OData request with async set as false, would and must be done synchronously.
Further reading – A list of my debugging posts
I have written a collection of blogs which contains my experience how to resolve some issue or figure out the logic of UI5 framework under the hood via self-debugging. See a list below:
- Chrome development tool
- UI5 inspector
- Deal with “blank screen issue”
- UI5 field formatter
- Negative cache
- Control registration and deregistration
- Fiori flower animation
- Fiori Icon logic
- Find out the origin of suspicious HTTP roundtrips
- Date Picker
- Contact support button behavior
- Two types of popup Dialog in Fiori
- Fiori globalization – amount display truncation logic
- An example of Fiori Globalization implementation – the number format mystery
- HTTP 200 OK and HTTP 304 Not Modified
- An example of how to find back button implementation on Smart Template generated application
- FullScreenPageRoutes in Component.js
- An easy way to find location where Unique id of UI5 control is created
- More detail about Bootstrap script tag
- A small tip I learn from UI5 Diagnostics tool – a practice of AOP programming
- Another reason of empty screen issue and how I analyze the issue
- Why Adapt UI button is visible in some system but missing in some other system
- Open your SAP GUI transaction in Fiori launchpad
- Why sometimes my OData request is cancelled automatically
要获取更多Jerry的原创文章,请关注公众号"汪子熙":
文摘归档
- 2021年01月(8)
- 2020年10月(10)
- 2020年09月(13)
- 2020年05月(35)
- 2019年04月(2)
- 2019年03月(6)
- 2019年02月(29)
- 2019年01月(61)
- 2018年12月(14)
阅读排行榜
- 如何把某个网站的SSL Server certificate链导入到ABAP Netweaver系统里 (534)
- SAP C/4HANA Sales Cloud使用OData服务和第三方系统集成的一个具体例子 (519)
- 基于SAP Kyma的订单编排增强介绍 (474)
- 浅谈SAP Cloud for Sales 自动化 (451)
- 一个SAP开发人员的2018年终总结 (376)
- 使用函数BAPISDORDER_GETDETAILEDLIST读取S/4HANA中Sales Order行项目数据 (362)
- 容器,Docker, Kubernetes和Kyma,以及Kyma对SAP的意义 (350)
- SAP C/4HANA与人工智能和增强现实(AR)技术结合的又一个创新案例 (342)
- SAP成都研究院2018年总共87篇技术文章合集 (337)
- 一些SAP Partners能够通过二次开发实现打通C/4HANA和S/4HANA的方法介绍 (334)