Ajax indicator getting stuck when button is pressed multiple times
------------------------------------------------------------------
Key: WICKET-4257
URL: https://issues.apache.org/jira/browse/WICKET-4257
Project: Wicket
Issue Type: Bug
Affects Versions: 1.4.19
Reporter: Nazaret Kazarian
Priority: Minor
http://apache-wicket.1842946.n4.nabble.com/Ajax-busy-indicator-getting-stuck-td4082837.html
I have added a global ajax indicator to all my pages by having all
pages (through a TemplatePage superclass) implement the
IAjaxIndicatorAware interface.
Generally it works, but I have noticed that it is quite easy to get
the ajax indicator stuck spinning indefinitely, by issuing many ajax
calls quickly the one after the other. For example if I press an ajax
button multiple times quickly the busy indicator gets stuck.
It seems as if the Wicket.show(hide)Incrementally js functions lose
count of ajax requests and the busy indicator is never actually
hidden.
With a little reverse engineering I noticed that maybe one of the
cases this happens is this: an ajax button is pressed,
showIncrementally is executed, but the actual ajax request is
postponed because its channel is busy. When the time comes to actually
execute the request, the request is stopped because of precondition
check, and thus hideIncrementally is never called. This loses the
count. A fix might be to call hideIncrementally when the ajax request
precondition is not met. As to why the precondition is not met, I am
guessing it's because the previous ajax request did DOM replacement in
a way that the precondition of the queued request is no longer met.
--
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