Personal tools
You are here: Home Products Plone Roadmap #163: Minimize page weight
Document Actions

#163: Minimize page weight

Contents
  1. Motivation
  2. Proposal
  3. Progress log
by Alexander Limi last modified May 6, 2007 - 10:14
Plone as it is per Plone 2.5 is unnecessarily heavy when it comes to downloaded CSS, JS etc.
Proposed by
Alexander Limi
Seconded by
Florian Schulze
Proposal type
User interface, Architecture
Assigned to release
State
completed

Motivation

Right now, Plone presents a considerable initial page download when you go to a Plone site. There is a lot of CSS, a lot of JS, and even if Plone has very good separation of concerns, we are currently not utilizing this to its full potential.

Goals are:

  • Load in under 20 to 30 seconds (incremental display) with useful content within 2 seconds on 56K connection
  • Equalize page download times to minimize delay variability.

Proposal

Some ideas:

  • Put conditions to remove JS and CSS for anonymous users.
    • No content type icons for anonymous by default
  • Have compression + packing of CSS and JS on by default
  • Trigger JS before all the page elements have loaded
    • Florian has already checked in code for this
  • Make sure Plone caches as well as possible out-of-the-box

Progress log

This is still a work in progress, but putting it in so we have a place to gather the different ideas.

It does not make that much sense to start working on this PLIP until the AJAX framework has been decided, etc - so it won't have a review bundle at the first deadline.

HTML filtering

Posted by Claus F"arber at July 26, 2007 - 14:41
Plone should also compress and filter the HTML it outputs: removing unnecessary whitespace, comments, etc. This not only saves bandwith but also makes the pages' source code look more neat.

CSS and ECMAScript files are only downloaded once; leaner HTML code pays off with every page hit.

It's on our list

Posted by Alexander Limi at July 26, 2007 - 19:05
This is coming, but there are technical reasons why we can't do this in a clean way just yet. I believe we'll be able to do this with the next version of Zope, as it depends on the correct events being emitted, so we can hook in the whitespace cleaner at the end.

We do a limited version of this in the portlets in Plone 3.0 — since they are cached, we can do this whitespace filtering once, and store the result.

For any issues with the web site functionality, please file a ticket.

Please consult the policy on plone.org content if you want your content published on this site.

Servers and hosting by