flashnfantasy: HTML-Seiten komprimieren mit JavaScript.

Will mal nur eure Meinung dazu hören...

Beim Auseinanderfieseln einer in PHP erstellten Website ist mir aufgefallen, daß etwa 70% aller Angaben selbst nach der Verwendung von CSS eigentlich nur noch Formatierungsangaben sind.

Nun habe ich folgendes gemacht (ich nenne es Daten-Container)

<div id="data-1">
  Name<br>
  Adresse<br>
  Wohnort<br>
  Telefon
</div>

Eine Schleife geht über alle DIVs und sucht sich die 'Datencontainer' raus.

var resc=/data-(.*)/gi;
  var alps = document.getElementsByTagName("div");
  for (var i=0; i < alps.length; i++)
  {
    var node = alps[i];
    resc.lastIndex=0;
    var gtc = resc.exec(node.id);
    if (gtc != null)
    {
      var target = gtc[1];
      var name = node.childNodes[0].data;
      var adresse = node.childNodes[2].data;
      ...
      // Hier kommt der Aufbau
      ...
    }
  }

Anschliessend wird mit ein wenig DOM die Seite aufgebaut.
Nach konsequenter Anwendung dieser Idee war die Seite nur noch ein Viertel so groß und wurde auch etwa 3mal schneller bereitgestellt (gemessen am Apache-Access-Log).
Da der JS auch eine eigene Datei ist, die bei einer neuen Seite nicht mitgeschickt wird, ist der JS eine echte Verkleinerung.
Funktioniert auch bei IE, Opera und Mozilla gleichermaßen.

Da ich sowas noch nirgends gehört habe frage ich mich, ist das wirklich eine gute Idee, oder befinde ich mich auf einem Holzweg ?

  1. js ist doch clientseitig,...

    was machen leute ohne js?
    btw: wie würde sowas in lynx aussehen?

    1. Hi there,

      js ist doch clientseitig,...

      was machen leute ohne js?

      die werden sich auf die Schenkel klopfen sich freuen, daß sie wieder schimpfen können...

      btw: wie würde sowas in lynx aussehen?

      1. *LOL*

        Liebe Grüße aus Ellwangen,

        Felix Riesterer.

  2. Hej,

    Beim Auseinanderfieseln einer in PHP erstellten Website ist mir aufgefallen, daß etwa 70% aller Angaben selbst nach der Verwendung von CSS eigentlich nur noch Formatierungsangaben sind.

    Dann solltest du dir nochmal über die Seitenstruktur  Gedanken machen:
    1. Wenn du schon die Formatierung mit css ausgelagert hast kann/sollte keine Formatierung mehr im html enthalten sein.
    2. Was du meinst ist wahrscheinlich der code der zur Textauszeichnung über geblieben ist. Und den kann man auch recht klein halten, wenn man sich _vorher_ Gedanken über die Strukturierung seiner Inhalte macht.

    Natürlich kann man soetwas basteln:

      
    <body>  
      <div id="outestWrapper" class="wrapperClass">  
        <div id="wrapper" class="wrapperClass">  
           <div id="innerWrapper" class="wrapperVlass">  
             <p id="content" class="gleichKommts">  
               <em>Hello World !<em>  
             </p>  
           </div>  
        </div>  
      </div>  
    </body>  
    
    

    Es ist eben (jenachdem) valide, aber nicht umbedingt sinnvoll.

    Wenn es dir wirklich um die Datenübertragung geht, die du minimieren möchtest, dann setz dich doch mit Techniken wie mod_gzip auseinander.

    Da der JS auch eine eigene Datei ist, die bei einer neuen Seite nicht mitgeschickt wird, ist der JS eine echte Verkleinerung.

    Insbesondere wenn mein JS ausgeschaltet ist und ich nichtmal die externe *.js laden muss. ;)

    Da ich sowas noch nirgends gehört habe frage ich mich, ist das wirklich eine gute Idee, oder befinde ich mich auf einem Holzweg ?

    Das hängt ganz davon ab, was genau du vorhast, welche Techniken dir zur Verfügung stehen, die du nicht genutzt hast und wieviel Einfluss du auf cLientseitige Extravaganzen hast.

    Beste Grüße
    Biesterfeld

    --
    "Nein! ... Nein, schneller, leichter, verführerischer die dunkle Seite ist."