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

        

Reply via email to