Christian Oldiges created WICKET-4668:
-----------------------------------------
Summary: Ajax responses for QUEUE and DROP type channels are not
guaranteed to be processed in the order of the requests
Key: WICKET-4668
URL: https://issues.apache.org/jira/browse/WICKET-4668
Project: Wicket
Issue Type: Bug
Components: wicket
Affects Versions: 6.0.0-beta3
Reporter: Christian Oldiges
The ajax responses are processed in several recorded steps depending on the
response content. Those steps form a step-chain for each request/response. The
processing order of each step-chain is guaranteed to be processed in the
correct order but having several of those step-chains being executed
"concurrently" may result in out-of-order response processing.
The "concurrency" is introduced into the response processing by using the
window.setTimeout function to re-schedule some of the steps (for various
reasons), but this timeout function does NOT guarantee to execute the scheduled
code in the order it is scheduled.
For this reason e.g. the DOM replacement step of response2 might be executed
before the same step is executed for response1.
This effect is also visible to the user. Suppose you have a textfield and you
trigger an ajax-request for each new character in the textfield (onChange
event). The Ajax response updates another part of the page showing the entered
text in a label component. Now, if the out-of-order response processing hits,
the label might show an old state of the textfield, because the latest response
has been overwritten by a previous response.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira