Tapestry 5
  1. Tapestry 5
  2. TAP5-1538

Optimize client-side URL rebuilding in IE 7

    Details

      Description

      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.

          1. 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) {

        Activity

        Howard M. Lewis Ship made changes -
        Fix Version/s 5.3 [ 12316024 ]
        Fix Version/s 5.3.0 [ 12316023 ]
        Howard M. Lewis Ship made changes -
        Fix Version/s 5.2.6 [ 12316674 ]
        Resolution Fixed [ 1 ]
        Status Reopened [ 4 ] Closed [ 6 ]
        Howard M. Lewis Ship made changes -
        Resolution Fixed [ 1 ]
        Status Closed [ 6 ] Reopened [ 4 ]
        Howard M. Lewis Ship made changes -
        Status Open [ 1 ] Closed [ 6 ]
        Fix Version/s 5.3.0 [ 12316023 ]
        Resolution Fixed [ 1 ]
        Howard M. Lewis Ship made changes -
        Summary Optimize cliewnt-side URL rebuilding in IE 7 Optimize client-side URL rebuilding in IE 7
        Howard M. Lewis Ship made changes -
        Summary Improve js execution time in internet explorer 7: rebuildURL Optimize cliewnt-side URL rebuilding in IE 7
        Howard M. Lewis Ship made changes -
        Assignee Howard M. Lewis Ship [ hlship ]
        Pedro Ayala made changes -
        Labels javascript, performance
        Pedro Ayala made changes -
        Field Original Value New Value
        Attachment tapestry-buildurl-improvement.txt [ 12481214 ]
        Pedro Ayala created issue -

          People

          • Assignee:
            Howard M. Lewis Ship
            Reporter:
            Pedro Ayala
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development