httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Maxime Petazzoni <>
Subject mod_mbox: js speed and mbox size
Date Wed, 13 Jul 2005 19:51:02 GMT

As I already said, the AJAX browser in mod_mbox relies on a hidden
XmlHttpRequest and on Javascript processing of the replied XML
document to generate the message list.

After setting up a browser stub, I'm not going to concentrate on
compatibility and speed problems before continuing. In fact, there are
two main problems implied by the current mechanism :

- On large mailboxes, the /ajax/msglist query reply can get *very*
  large. As an example, this mailing list's 2001-08 archives contains
  1708 messages, and the corresponding XML is 452492 bytes big. This
  is too much. As a comparison, the old mod_mbox resulting page for
  the same month is "only" 311 KB big.

  As a solution to this, Ian advised the use of LiveGrid
  ( It fetches only the piece of
  data that need to be displayed (ten, twenty, ... rows instead of the
  whole 1700+). I don't really like this solution because the user
  must scroll the table, and then wait for the data to appear,
  etc. And that we don't get the whole list (no in-page search for

  Another solution would be to use a page system as in the Debian
  mailing list archives, displaying 100 or 200 messages per page
  only. This would reduce bandwidth usage, but it will also make things
  harder when updating the context box. For the moment, the message
  list is fetched once, and all operations are made on this stored
  list. When updating the context box, we just take -3 to +3 messages
  from the list. With the page system, we'll experience problems while
  approaching the end of a page ...

- The second problem is brought by the first one. On large mailboxes,
  the Javascript processing takes too much time. Building all elements
  each time the message list is displayed (at loading time or when you
  close a message box) does not make the application usable.

  Of course, the paging system would solve this problem, too. In
  addition to this, my Javascript code may not be the most optimized
  we could find.

- Concerning compatibility problems, the whole thing does not work
  nor with IE, neither with Opera, although both of these browsers
  does not comply against any javascript error.

  Any JS compatibility expert in the house ?

Well, if you have any ideas or suggestions, they're really welcome.

- Sam

Maxime Petazzoni (
 -- gone crazy, back soon. leave message.

View raw message