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.2.5, 5.3
            Reporter: Pedro Ayala


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