[ 
https://issues.apache.org/jira/browse/TAP5-1538?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Pedro Ayala updated TAP5-1538:
------------------------------

    Attachment: tapestry-buildurl-improvement.txt

> Improve js execution time in internet explorer 7: rebuildURL
> ------------------------------------------------------------
>
>                 Key: TAP5-1538
>                 URL: https://issues.apache.org/jira/browse/TAP5-1538
>             Project: Tapestry 5
>          Issue Type: Improvement
>          Components: tapestry-core
>    Affects Versions: 5.3, 5.2.5
>            Reporter: Pedro Ayala
>              Labels: javascript,, performance
>         Attachments: tapestry-buildurl-improvement.txt
>
>
> While loading the tapestry javascript, we execute the "contains" function for 
> every script and css files in the page. The function tries to find if we 
> already have one asset in the list of script.
> Firefox and Chrome already contains the complete URL, but IE needs to call 
> rebuildURL to get it. This results in calling the function hundred of times 
> so any little optimization of it saves some javascript loading time.
> The most expensive operation is the one for retrieving the window.location 
> url and adding it to the path parameter. In order to improve it, we can save 
> the basic build url in a local variable and just add the path to it.
> ### Eclipse Workspace Patch 1.0
> #P tapestry-core
> Index: src/main/resources/org/apache/tapestry5/tapestry.js
> ===================================================================
> --- src/main/resources/org/apache/tapestry5/tapestry.js       (revision 
> 1129681)
> +++ src/main/resources/org/apache/tapestry5/tapestry.js       (working copy)
> @@ -522,8 +522,12 @@
>                       return path;
>               }
>  
> -             var l = window.location;
> -             return l.protocol + "//" + l.host + path;
> +             if (!Tapestry.buildUrl) {
> +                     var l = window.location;
> +                     Tapestry.buildUrl = l.protocol + "//" + l.host;
> +             }
> +
> +             return Tapestry.buildUrl + path;
>       },
>  
>       stripToLastSlash : function(URL) {

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to