[ 
https://issues.apache.org/jira/browse/WICKET-4689?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13426727#comment-13426727
 ] 

Bertrand Guay-Paquet commented on WICKET-4689:
----------------------------------------------

Possible solution on the client-side :

New code when ajax response is received :
replacedDOMElement = ...;
$replacedDOMElement  = $(replacedDOMElement);
for each js timers:
    $component = $(timer.component);
    if( $replacedDOMElement.is($component) ||
        $replacedDOMElement.find($component ).length ) {

        cancelTimer(timer);
    }


To which Martin Grigorov replied:
Yes [this would work]
Wicket sends a message on topic '/dom/node/removed' for each removed element.
Using its id we can stop the timer.


I don't know what these message topics are however so I can't comment much 
further! My only possibly relevant concern is that timers of all children of a 
replaced element should be stopped as well in case some markup ids match.


                
> Javascript timers not removed when a Component is replaced by ajax
> ------------------------------------------------------------------
>
>                 Key: WICKET-4689
>                 URL: https://issues.apache.org/jira/browse/WICKET-4689
>             Project: Wicket
>          Issue Type: Bug
>          Components: wicket
>    Affects Versions: 6.0.0-beta3
>            Reporter: Bertrand Guay-Paquet
>              Labels: ajax, timer
>         Attachments: quickstart.zip
>
>
> The timer's javascript precondition checks that the component (html element) 
> on which is
> attached the timer behavior is still in the DOM document. When a component 
> with a timer behavior is replaced in java in an ajax request by another 
> component without this behavior, this check is not enough. In this case, the 
> component id is still in the DOM (it was replaced by another one by the same 
> id).
> See email thread at:
> http://apache-wicket.1842946.n4.nabble.com/ComponentNotFoundException-when-replace-a-fragment-with-ajax-tp4650898.html

--
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