The patch below is only for purpose of showing the problem and possible solution and it surely requires more work. First part in php code contains also profiling code to show the difference.
In my case it came from above 7 seconds down to 1.2 second.
I'm interested in Your opinions on this.
It's very interesting, on my box I have 50% speed up on Opera 9.27 and 10% on FF3.
I forgot to mention that I was testing it on set of 200 messages (regarding time advantage mentioned in my first post).
One more thing that appeared in the meantime. In patch given I didn't take under consideration adding new messages to the existing list. When initiating off-DOM tbody element, it should be clone of this.list.tBodies[0]. So proper init_off_list function should look like this:
init_off_list: function() { this.off_list = this.list.tBodies[0].cloneNode(true); }, _______________________________________________ List info: http://lists.roundcube.net/dev/