Hi,

I see there is

/**
 * Remove any scheduled timers on the removed element.
 * This wont remove the timer for elements which are children of the
removed one.
 */
Wicket.Event.subscribe('/dom/node/removing', function(jqEvent, element) {
var id = element.id;
if (Wicket.TimerHandles && Wicket.TimerHandles[id]) {
window.clearTimeout(Wicket.TimerHandles[id]);
delete Wicket.TimerHandles[id];
}
});

would this take care of automatically removing the behavior at client side?

On Thu, Jan 17, 2013 at 11:49 AM, Ernesto Reinaldo Barreiro <
[email protected]> wrote:

> Or maybe "mark" those behaviors as "if it fails do not throw exception".
> That way when call back comes behavior will be removed form client side and
> failing request ignored?
>
>
> On Thu, Jan 17, 2013 at 11:44 AM, Sven Meier <[email protected]> wrote:
>
>> Yeah, this is what I wrote in my first comment:
>>
>> "Thus the next pending Ajax request comes through, since wicket-ajax's
>> defaultPrecondition sees the markupId still present in the dom."
>>
>> Perhaps we have to cancel out all scheduled callbacks for components
>> which are replaced via Ajax.
>>
>> Sven
>>
>>
>> On 01/17/2013 11:34 AM, Ernesto Reinaldo Barreiro wrote:
>>
>>> Hi,
>>>
>>> On Thu, Jan 17, 2013 at 11:17 AM, Sven Meier <[email protected]> wrote:
>>>
>>>           @Override
>>>>
>>>>>          public void detach(Component component)
>>>>>          {
>>>>>                  AjaxRequestTarget target =
>>>>> component.getRequestCycle().**
>>>>>
>>>>> find(AjaxRequestTarget.class);
>>>>>                  if (target != null)
>>>>>                  {
>>>>>                          stop(target);
>>>>>                  }
>>>>>                  super.detach(component);
>>>>>          }
>>>>>
>>>>>
>>>> A small nitpick:
>>>> Removing a component in an ART might not be the only reason why
>>>> #detach()
>>>> is called. A developer might call component#detach() to force a LDM to
>>>> reload on the next render.
>>>>
>>>> Sven
>>>>
>>>>
>>>>  Just another caveat: what happens if during rending time, before call
>>> AJAX
>>> response is processed, the behavior is re-fired at client side? Wouldn't
>>>   this produce a component not found exception?
>>>
>>>
>>
>
>
> --
> Regards - Ernesto Reinaldo Barreiro
> Antilia Soft
> http://antiliasoft.com/ <http://antiliasoft.com/antilia>
>



-- 
Regards - Ernesto Reinaldo Barreiro
Antilia Soft
http://antiliasoft.com/ <http://antiliasoft.com/antilia>

Reply via email to