Zum Inhalt springen

RegEx zum entfernen von unnötigen Whitespaces aus dem Quelltext


Empfohlene Beiträge

Hallo zusammen,

ich habe folgenden Artikel von Dean Edwards gelesen:

http://dean.edwards.name/weblog/2005/09/bbc-space/trackback/

Dort beschreibt er, dass man durch entfernen der unnötigen Whitespaces ca 23% an Traffic sparen kann.

Ich würde gerne das ganze mal durchtesten, nur leider hab ich keinen Schimmer wie der dazugehörige RegEx aussehen müsste.

Bin dankbar für jede Hilfe

Gruß,

Markus

Link zu diesem Kommentar
Auf anderen Seiten teilen

"i used my text editor" war eine schöne antwort in dem thread über die whitespaces lol ;)

das bringt "uns" natürlich gar nicht weiter.

aber der satz

A typical page contained 23% unnecessary white space characters (tabs, line feeds and normal spaces).

plus die antwort von bmg4ever2

Es sollen anscheinend nur Whitespaces zwischen Tags entfernt werden

also eine funktion schreiben die folgendes macht:

bei jeder ausgabe von text

1. mehr als 1 whitespace hintereinander raus

2. tabs raus

3. zeilenumbrüche raus

4. <br /> wird zu <br/> (als beispiel für bmg4ever2s post)

ABER: du müsstest dir den gesamten quellcode der seite von einer funktion erzeugen und zurückgeben lassen um dann darüber dein regEx laufen zu lassen.

ist das praktikabel?

Link zu diesem Kommentar
Auf anderen Seiten teilen

ABER: du müsstest dir den gesamten quellcode der seite von einer funktion erzeugen und zurückgeben lassen um dann darüber dein regEx laufen zu lassen.

ist das praktikabel?

Warum denn nicht?

Die Frage ist jetzt, ob die HTML-Datei, die zurückgegeben wird statisch ist oder durch eine Scriptsprache oder ähnliches dynamisch generiert wird.

Bei letzterem gebe ich dir völlig recht, dass es sinnvoller ist die Ausgabe eventuell direkt ohne whitespaces zu gestalten, da man ansonsten mit einer parsing-funktion je nach größe der Datei einen ziemlichen Aufwand hat (man muss ja auch ggfs. alle vorherigen ausgaben erst in ein array schreiben usw.).

Bei statischen Dateien oder auch Template-Dateien (wo halt nur html-code und irgendwelche template-variablen vorkommen) macht es aber durchaus sinn die Dateien vor dem Upload zu optimieren, indem man die whitespaces entfernt. man hat dann immer lokal für sich eine kopie mit schön vielen leerzeilen und tabs und auf dem webserver die optimierte version.

Link zu diesem Kommentar
Auf anderen Seiten teilen

4. <br /> wird zu <br/> (als beispiel für bmg4ever2s post)

Das Leerzeichen vor dem "schliessenden Tag" ist aber absichtlich da, um abwärtskompatibel zu bleiben. Genauso wie <img src="bild.gif" /> oder <input /> etc.

Wegen den paar Byte auf die Kompatibilität zu verzichten ist doch etwas arg knausrig.

Der Rest trifft natürlich, ja nach Seite, zu, aber auch da muss man eben sehen, wie groß sind meine Seiten im Schnitt überhaupt, wieviele Page Impressions hab ich eigentlich und lohnt sich dann der Aufwand (auch für den Server/Prozessor) überhaupt?

Wenn ich 100 Byte spare pro Seite (also 100 überflüssige Zeichen raus) brauch ich knapp 10500 Aufrufe nur um 1 MB zu sparen. Also selbst wenn ich für den Traffic bezahlt, macht dieses MB wohl kaum was aus (und 10000 Aufrufe im Monat muss man auch erstmal haben).

Link zu diesem Kommentar
Auf anderen Seiten teilen

Das Leerzeichen vor dem "schliessenden Tag" ist aber absichtlich da, um abwärtskompatibel zu bleiben. Genauso wie <img src="bild.gif" /> oder <input /> etc.

Wegen den paar Byte auf die Kompatibilität zu verzichten ist doch etwas arg knausrig.

hoplla das ist mir ja garnicht so genau ins auge gefallen:

die oben genannte regex von DennyB (nicht mir, wie irrtümlich von forTeesSake behauptet) entfernt das leerzeichen bei <br /> nicht!

es entfernt lediglich alle leerzeichen, die alleine zwischen einem schließenden Tag > und einem öffnenden Tag < stehen. Nicht weniger und vor allem auch nicht mehr.

Dieses Leerzeichen zu entfernen ist, wie du bereits sagst natürlich nicht empfehlenswert.

Der Rest trifft natürlich, ja nach Seite, zu, aber auch da muss man eben sehen, wie groß sind meine Seiten im Schnitt überhaupt, wieviele Page Impressions hab ich eigentlich und lohnt sich dann der Aufwand (auch für den Server/Prozessor) überhaupt?

Wenn ich 100 Byte spare pro Seite (also 100 überflüssige Zeichen raus) brauch ich knapp 10500 Aufrufe nur um 1 MB zu sparen. Also selbst wenn ich für den Traffic bezahlt, macht dieses MB wohl kaum was aus (und 10000 Aufrufe im Monat muss man auch erstmal haben).

Da hast du natürlich Recht. Das lohnt sich nur bei wirklich großen Dateien. Und der Grund ist hier auch nicht der Traffic, den man beim Hoster bezahlen muss, sondern die Übertragungsgeschwindigkeit zu jedem einzelnen Client.

Wenn ich da an kompliziert gestalte Webseiten, wie z.B. Webshops denke (XT:C von mir aus, denn den kenn ich zufällig), dann macht es durchaus sinn bei großen Produktübersichtsseiten wenigstens die HTML-Datei zu entschlacken. Naja vielleicht ist auch einfach nur das gute Gefühl, dass der lange dauernde Seitenaufbau jetzt ein gaaanz kleines bisschen schneller geht :)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Da hast du natürlich Recht. Das lohnt sich nur bei wirklich großen Dateien. Und der Grund ist hier auch nicht der Traffic, den man beim Hoster bezahlen muss, sondern die Übertragungsgeschwindigkeit zu jedem einzelnen Client.

Wenn ich da an kompliziert gestalte Webseiten, wie z.B. Webshops denke (XT:C von mir aus, denn den kenn ich zufällig), dann macht es durchaus sinn bei großen Produktübersichtsseiten wenigstens die HTML-Datei zu entschlacken. Naja vielleicht ist auch einfach nur das gute Gefühl, dass der lange dauernde Seitenaufbau jetzt ein gaaanz kleines bisschen schneller geht :)

Wenn du dir das aber mal ansiehst: wie groß ist denn eine Seite (vom HTML Quelltext mal gesehen): Wenn das mal 2000 Zeichen hat, ist es doch schon ein großes Dokument, sag ich jetzt mal so. 2000 Zeichen sind gerade mal ca. 2kB, die übertragen werden, an den Client.Der lädt dann evtl. Bilder ober eingebundene Dateien nach.

Selbst 4000 Zeichen waren noch zu Analogzeiten ne Sache von 1-2 Sekunden. Eine Optimieren in dem Bereich ist allenfalls das gute Gefühl ;)

Das heisst natürlich nicht unb., dass eine Seite sofort nach 1-2 Sekunden angezeigt wird. Der Browser hat dann aber die Quelle und kann die Seite rendern und evtl. Bilder o.ä. nachladen. Das ist wohl der Flaschenhals beim Seitenaufbau, nicht die überflüssigen Bytes.

IMHO

EDIT:

Wenn ich mir die Seite beim Antwortschreiben gerade ansehe, sind da natürlich schon ein paar mehr Zeichen (OOo zählt vom kopierten Quelltext der Seite 8897 Wörter und 77838 Zeichen. Aber eine Seite, die nicht gerade ein forum ist, wird solche Größen wohl selten erreichen, weil der ja auch alle Beiträge (die unten angezeigt werden) mitzählt und so (35 Seiten gepastet in Writer mit Times New Roman, 12).

FF gibt für die Seite aber eine Größe von 17.67 KB aus... Wie ich jetzt von der einen auf die andere Zahl komme weiss ich aber nicht ;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...