HTML-Hölle (was: Re: [linux-l] Mozilla-Politik)

olafBuddenhagen at gmx.net olafBuddenhagen at gmx.net
Mi Mär 28 23:12:23 CEST 2007


Hallo,

On Tue, Mar 27, 2007 at 01:15:49PM +1000, Peter Ross wrote:
> On Mon, 26 Mar 2007, olafBuddenhagen at gmx.net wrote:

> > Bekannte Geschichte: Browser schnell, Anwernder begeistert, nur
> > leider leider kein (oder nur rudimentäres) CSS... OK, CSS wird
> > (richtig) implementiert. Jetzt leider Browser nicht mehr schnell
> 
> Was ich nicht ganz verstehe:
> 
> Wenn eine Seite ein Feature gar nicht benutzt, sollte doch der
> Overhead klein sein - gerade mal
> 
> if (feature) {..}
> 
> und wenn feature 0 ist, ist das in {} alles unwichtig?

So einfach ist das leider nicht.

Prinzipiell könnte man das tatsächlich versuchen, dass man mehrere
Codezweige implementiert: Wenn eine Seite nur "old school" HTML ohne
oder nur mit rudimentärem CSS enthält, wird nach fest kodierten Regeln
ein statischer Layout-Baum erzeugt und angezeigt. Wenn die Seite
einfaches Scripting benutzt, erzeugt man ein teilweise dynamisches
Layout, aber immer noch nach festen Regeln. Wenn die Seite richtiges CSS
benutzt, erzeugt man nach CSS-Regeln unter berücksichtigung des DOMs
(aber ohne echten DOM-Tree) ebenfalls einen halb-dynamischen
Layout-Baum. Wenn die Seite aus dem vollen Schöpft mit
DOM-manipulierenden Skripten, muss man halt einen echten DOM-Baum und
daraus einen voll dynamischen Layout-Baum erzeugen.

Das ist allerdings ziemlich aufwändig, da man nicht nur mehrere
parallele Code-Zweige pflegen müsste (mit unterschiedlichen Layout-Bugs,
je nach dem, welche Variante im Einsatz ist?!...), sondern man braucht
auch noch speziellen Code, um zu erkennen, welche Variante gerade
benötigt wird. Problematisch ist dabei auch, dass man das ja nicht von
Vornherein weiß, sondern erst Mitten beim Laden der Seite feststellt,
oder gar erst wenn der Nutzer ein bestimmtes Bedienelement betätigt.

In der Praxis ist es also so, dass man, sobald die Layout-Enigne die
CSS- und DOM-Sachen implementiert, grundsätzlich immer darüber geht, und
selbst die einfachsten HTML-Seiten per DOM und default-Stylesheet
bearbeitet. Einfach und elegant -- und tierischer Overhead.

-Olaf-



Mehr Informationen über die Mailingliste linux-l