[ 
http://issues.apache.org/jira/browse/TAPESTRY-1066?page=comments#action_12428312
 ] 
            
Jesse Kuhnert commented on TAPESTRY-1066:
-----------------------------------------

Almost there with this one. It's a big bug and I want to make sure my solution 
is elegant enough that it doesn't happen again. 

> Duplicate listeners added for events in browser every time @EventListener is 
> fired.
> -----------------------------------------------------------------------------------
>
>                 Key: TAPESTRY-1066
>                 URL: http://issues.apache.org/jira/browse/TAPESTRY-1066
>             Project: Tapestry
>          Issue Type: Bug
>          Components: Framework
>    Affects Versions: 4.1.1
>         Environment: JBoss 4.0.4.GA,  Firefox 1.5.0.6, Windows XP
>            Reporter: Ben Sommerville
>         Assigned To: Jesse Kuhnert
>             Fix For: 4.1.1
>
>
> The response from an @EventListener method seems to reregister for that event 
> on the browser.  The effect of this is the first time you trigger the event 
> one ajax call is made, the second time two calls are made, the third time 
> eight calls are made, etc.
> The testcase I submitted for [TAPESTRY-1054] shows this.  Every time I change 
> the first select, the number of ajax calls doubles.
> Each response includes something like
> <response id="initializationscript" type="script"><script>
> //<![CDATA[
> tapestry.form.clearProfiles('loginRole'); 
> tapestry.form.registerProfile('loginRole',{});
>                 dojo.event.connect(dojo.byId("role"), "onchange", function(e){
>                     var content={beventname:"onchange"};
>                     tapestry.event.buildEventProperties(e, content);
>                     if (!content["beventtarget.id"]) 
> content["beventtarget.id"]="role";
>                     
>                    var 
> validateState=tapestry.form.forms["loginRole"].validateForm;
>                    var validateForm=false;
>                    tapestry.form.setFormValidating("loginRole", validateForm);
>                     tapestry.form.submitAsync("loginRole", content);
>                     
>                     tapestry.form.setFormValidating("loginRole", 
> validateState);
>                     
>                 });
> //]]>
> </script></response>
> I assume the "dojo.event.connect" call is the culprit, but I haven't had a 
> chance to dig into the code to work out why or where it is being added to the 
> response.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to