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: