Details

    • Similar issues:
      XWIKI-4183Improve page load speeds via parallel JavaScript download
      XWIKI-9242Fetching RSS feed content asynchronously or after specified time interval
      XWIKI-1990Pages take ~30 seconds to load when enabling pipelining in fasterfox
      XWIKI-4630WYSIWYG doesn't load
      XWIKI-6454Activity Stream needs certain indexes set on the database in order to improve performace
      XWIKI-1750Edit locking and unlocking might halt page loading
      XWIKI-1794Improve panel printing in page.
      XWIKI-6480Concatinate always used scripts together and serve in single file.
      XWIKI-9046Improve document save performance by not loading the full history
      XWIKI-7001WYSIWYG does not load in IE9

      Description

      Over time the xwiki skins in general have added JS, CSS, images. This is making xwiki pages slow to load as shown by YSlow (see attached image).

      What we should do:

      • Reduce the number of JS to load by moving out JS that are not needed for all pages so that they are loaded on demand
      • GZip all HTTP response contents
      • Modify the build to automatically merge all CSS and JS files together in a single file (see http://aciddrop.com/2008/01/03/automatically-join-your-javascript-and-css-into-a-single-file/)
      • Add expire headers. We need to be careful with this and probably do what yahoo recommends: modify the file names when they change so that clients get the newer versions. Otherwise they'll need to remember to refresh their caches. This can be automated in the build and should be pretty easy especially if we merge all files into a single one.
      • Minify CSS and JS files

        Issue Links

          Activity

          Hide
          Robert Collier added a comment - - edited

          The Performance page (http://platform.xwiki.org/xwiki/bin/view/AdminGuide/Performances) recommends adding Apache web server for gzip http response compression. But I don't understand what about doing this in Jetty itself? http://blog.max.berger.name/2010/01/jetty-7-gzip-filter.html

          http://stackoverflow.com/questions/11383645/how-to-configure-jetty-as-css-js-file-server-with-expires-header

          Show
          Robert Collier added a comment - - edited The Performance page ( http://platform.xwiki.org/xwiki/bin/view/AdminGuide/Performances ) recommends adding Apache web server for gzip http response compression. But I don't understand what about doing this in Jetty itself? http://blog.max.berger.name/2010/01/jetty-7-gzip-filter.html http://stackoverflow.com/questions/11383645/how-to-configure-jetty-as-css-js-file-server-with-expires-header
          Hide
          Sergiu Dumitriu added a comment -

          Thanks for the link, this could indeed be done by default in the standalone distribution. Note that Jetty evolved along XWiki, so those settings were not available for most of the time that we've been using it.

          Show
          Sergiu Dumitriu added a comment - Thanks for the link, this could indeed be done by default in the standalone distribution. Note that Jetty evolved along XWiki, so those settings were not available for most of the time that we've been using it.
          Hide
          Vincent Massol added a comment -

          Hmm this would mean we would need to have 2 web.xml: a generic one and a specific one for the Jetty distribution...

          Show
          Vincent Massol added a comment - Hmm this would mean we would need to have 2 web.xml: a generic one and a specific one for the Jetty distribution...
          Hide
          CalebJamesDeLisle added a comment -

          IMO this would not have significant impact. Unfortunately the things that will are more painful to improve.

          Show
          CalebJamesDeLisle added a comment - IMO this would not have significant impact. Unfortunately the things that will are more painful to improve.
          Hide
          Vincent Massol added a comment -

          Note that reducing # of JS/CSS files can have negative effects too, see http://raibledesigns.com/rd/entry/you_shouldn_t_have_to

          To summarize:

          • Use of HTTP 2.0 solve some issues
          • Concatenating may cost in having to reload the whole big file when a small change is made
          • Concatenating prevent the browser from executing js before the full big file is loaded

          Something to take into account when we tackle this topic of page loading times.

          Show
          Vincent Massol added a comment - Note that reducing # of JS/CSS files can have negative effects too, see http://raibledesigns.com/rd/entry/you_shouldn_t_have_to To summarize: Use of HTTP 2.0 solve some issues Concatenating may cost in having to reload the whole big file when a small change is made Concatenating prevent the browser from executing js before the full big file is loaded Something to take into account when we tackle this topic of page loading times.

            People

            • Assignee:
              Unassigned
              Reporter:
              Vincent Massol
            • Votes:
              8 Vote for this issue
              Watchers:
              8 Start watching this issue

              Dates

              • Created:
                Updated:
                Date of First Response: