The loading mask layer is deployed after an ajax-call. It aims at blocking the GUI to prevent further user actions until the the ajax-request has been completed.
However, the mask layer may need to be deactivated in instances where the portal requires user instructions before the previous instructions have been carried out.
Simply generate a script to make an asynchronous ajax-call. Use the uicomponent.doAsync() method rather than the uicomponent.event() method. For example:
<a href="<%=uicomponent.doAsync(action, beanId, params)%>" alt="">Asynchronous</a>
The doAsync() method automatically adds the following new parameter to the parameters list: asyncparam = new Parameter(AJAX ASYNC,"true"); (AJAX ASYNC == "ajax async").
This request is asynchronous and the Ajax Loading Mask will not be deployed.
An asynchronous request can still be made using the uicomponent.event(). When using this method, the asyncparam must be added manually.
The GUI will be blocked to ensure that the user can only request one action at one time and while the request seems to be synchronous, all Ajax requests are always asynchronous. For further information, refer to Section 2.13, “Deactivation of the Ajax Loading Mask”.
Most web browsers support Ajax requests in two modes: Synchronous and Asynchronous. This mode is specified with a boolean bAsync parameter.
var bAsync = false; // Synchronous request.open(instance.method, instance.url, bAsync);
However, to work with browsers that do not support the Synchronous requests, bAsync is always set to true (Ajax request will always be asynchronous).
// Asynchronous request request.open(instance.method, instance.url, true);