Queue control for AJAX requests
Queuing AJAX requests on the client side is a common practice meant to ensure that only one request is processed at a time. The goal of this approach is to protect the server from being overwhelmed and the client browser from blocking or receiving AJAX responses in an undefined order. While AJAX queuing is available in JSF 2.0, queue control for AJAX is available starting with JSF 2.2.
In order to provide AJAX queue control, JSF 2.2 introduced an attribute named delay
for the <f:ajax>
tag. The value of this attribute is a string that represents a number of milliseconds (defaults to none
). During this time interval, only the most recent request is actually sent to the server, while the rest of them are ignored. In other words, JSF will wait n milliseconds until the most recent AJAX request is executed. By default, it will not wait.
Here is an example of using the default delay
attribute, and an explicit delay of 1000 milliseconds. In order to point out...