Boris, 

Thanks much for the info.  I was wondering if you could help clarify a
few issues, below...

> Mozilla will do progressive rendering.  As far as I know, so will IE. 
> I'm not sure about other browsers (this is not to imply that they do 
> not; I simply have no information).

OK.  I take it this is default behavior, that doesn't require anything
in the HTML other than a <table> tag, right?

> 
> > (2)  What else makes tables evil (if they still are) from *just a
> > performance standpoint*?  Is page reflow, etc. that much more
> > processor-intensive using tables than with CSS
> 
> It is quite possible to create tables with CSS ("display: table" and the 
> like).  In Mozilla's implementation, these share all the problems of 
> HTML tables.
> 
> The major problem with table layout (again, in Mozilla, but this part 
> applies to all browsers to some extent) is that, unlike most of reflow, 
> it absolutely requires two passes to get right (due to the shrink-wrap, 
> auto-size nature of table reflow).  This is two passes for the table. 
> Now if you have a nested table, you get two passes for the outer table 
> and for each one you get two passes for the inner table, etc.  One can 
> put in some optimizations to make the number of times the inner table is 
> reflowed not grow exponentially, but these optimizations themselves take 
> some processing time.

Makes sense.  Any idea what happens in the first pass, vs. the second
pass?  I want to make sure I understand what you mean by 'shrink-wrap
/ auto-size'

> 
> > so much so that it would affect a general user's web experience,
>  > perceived page load times, etc?
> 
> This part depends heavily on the hardware, bandwidth, etc.... I do not 
> have a useful answer (perhaps someone else does?).
> 
> > Do fixed widths on tables significantly help/hinder things
> 
> They can significantly help things when combined with table-layout:fixed 
> (whenever practicable).  Fixed widths on tables that are overconstrained 
> (eg setting a table to 200px and having two cells inside each set to 
> 120px) hinder things a bit as things have to get reshuffled.

Thanks, now that you pointed this out, I've been able to find a fair
amount of documentation to back this up.  Out of curiousity, what
exactly happens when a fixed-width table is over-constrained in
Mozilla?  Does it display the incorrectly-sized table as it's working,
and then redisplay it properly -- or does it re-render the table from
square 1 before displaying anything to the scree?

> 
> > (3)  Knowing how browsers work, what else would you preach to web
> > developers to make for a snappier web, today and tomorrow?
> 
> table-layout:fixed is a big one, again when possible.
> 
> One suggestion I would make is to defer all JS loading until as late as 
> possible.  The reason is that when a browser encounters a <script> tag 
> it must halt the HTML parser (modulo the "defer" attribute), fetch the 
> script from the network, parse it, execute it, and only then restart the 
> HTML parser.  Thus if you have a script that you don't really need 
> that's fetched externally, eliminate it.  If you need it but not till 
> onload, moving the load to the end of the page may show more of the page 
> faster (while slowing down overall load time, possibly, as the script 
> load is kicked off later).

I'll include this.  BTW, what about HTTP1.1 support -- though it's not
something that is enabled via HTML, it does seem like something folks
could request of their sysadmin... is HTTP1.1 new in Mozilla / Nav6,
or was it in the 4.x release, too?


Again, thanks for your help!

-Jason

Reply via email to