Frage

Minimierung html ist der einzige Abschnitt Googles Page Speed ??, wo es noch Raum zur Verbesserung.

Meine Website ist alles dynamisch und die HTML ist bereits Deflated so gibt es keinen Grund, auf dem Server mehr Druck zu setzen (ich will nicht Seiten in Echtzeit zu minimieren, vor dem Senden).

Was ich tun konnte, war die Template-Dateien zu minimieren. Meine Vorlagen-Dateien sind eine Mischung aus PHP und HTML so dass ich mit einigem Code habe kommen, dass ich glaube, ziemlich sicher ist, aber möchte Gemeinschaft überarbeitet werden.

// this will loop trough all template files
// php is cleaned first so that line-comments will not interfere with the regex
$original = file_get_contents($dir.'/'.$file);
$php_clean = php_strip_whitespace($dir.'/'.$file);
$minimized = preg_replace('/\s+/', ' ', $php_clean);

Das wird meine Template-Dateien als eine einzige sehr lange Datei mit einigen Stellen abgewechselt machen, wo DB Inhalt eingefügt wird. Googles Homepage Quelle sieht mehr oder weniger wie das, was ich so frage ich mich, ob sie einen ähnlichen Ansatz verfolgen.

Frage 1: Haben Sie potencial Probleme antecipate
Frage 2: Gibt es trotzdem besser (effiziente, dies zu tun)

Und bitte denken Sie daran, dass ich nicht zu validate HTML ich versucht, wie die Vorlagen sind nicht gültig HTML (Kopf- und Fußzeile sind schließt zum Beispiel).

Edit: Do beachten Sie, dass die Vorlagendateien auf deploy minimiert werden. Als CSS und Javascript-Dateien minimiert und komprimiert mit YUI Compressure und Schließung würden die Template-Dateien wie weise minimiert werden, auf deploy. Nicht auf Client-Anfrage.

Danke.

War es hilfreich?

Lösung 4

Ich habe seit ein paar Wochen Tests auf allen meinen Seiten laufen und ich kann sagen, dass diese Methode recht konsistent ist. Es wird nur Vorlageninhalt beeinflussen, so dass es wenig Risiko, sich mit unbekannten <pre> oder ähnlichen vermasselt.

Es wird ausgeführt vor deploy so gibt es keine Auswirkungen auf dem Server ist -. Eigentlich sollte es eine wenig Geschwindigkeit sein auf, als die Datei kleiner wird

Erinnern Sie sich, dass alle Inhalte, die aus der Datenbank kommt nicht erleiden keinen Einfluss, wie, wie gesagt, diese Läufe vor deploy und Template-Dateien nur.

Die solide genug Nähte Methode es in die Produktion zu übergeben.

Wenn etwas schief geht Ich werde es hier posten.

Andere Tipps

Google-eigenes Closure Templates (Soja) Streifen Leerzeichen am Ende der Leitung standardmäßig und die Template-Designer fügt explizit einen Raum mit {sp}. Dies ist wahrscheinlich nicht gut genug Grund von PHP zu wechseln weg, aber ich wollte nur, um es Ihre Aufmerksamkeit bringen.

Darüber hinaus erkennen, dass HTML 4 ermöglicht es Ihnen, einige Tags ausschließen, wie sie in der Page Speed ??Dokumentation empfohlen auf Verkleinerungs HTML (http://code.google.com/p/page-speed/wiki/MinifyHtml). Sie können </p>, </td>, </tr> usw. Eine vollständige Liste der Elemente aus, für die Sie den End-Tag weglassen, wenn nach „- O“ in den HTML 4 DTD (http://www.w3.org/TR/REC -html40 / SGML / dtd.html). Sie können weglassen sogar die <html>, <head>, <body> und <tbody> Tags vollständig, da beide Start- und End-Tags sind optional ( "O O" in der DTD).

Sie können auch die Anführungszeichen um Attribute (http://www.w3.org/TR/REC-html40/intro/sgmltut.html#h-3.2.2) wie id, class (mit einer einzigen Klasse weglassen Name) und type die einfachen Inhalt haben (dh Streichhölzer /^[-A-Za-z0-9._:]+$/). Für Attribute, die einen einzigen möglichen Wert haben, können Sie den Wert ausschließen (zum Beispiel, sagen wir einfach checked statt checked=checked).

können einige Leute diese Tipps finden abstoßend, weil wir schon seit so vielen Jahren konditioniert worden für die kommende Welt der einfachen LALR Parser für XHTML vorzubereiten. So Tools wie Dave Raggett HTML Tidy erzeugen HTML mit der richtigen End-Tags und Anführungszeichen um Attributwerte. Aber seien wir ehrlich, alle Browser bereits Parser haben, die HTML 4 verstehen, jeder neue Browser wird die HTML-5-Parser verwenden, anstatt XHTML, und wir sollten komfortables Schreiben HTML erhalten, die für die Größe optimiert ist.

That being said, außer ein paar großen Unternehmen wie Google und Facebook, meine Vermutung ist, dass die Seitengröße ist eine zu vernachlässigende Komponente der Latenz, also, wenn Sie Ihre eigene Website sind die Optimierung ist es wahrscheinlich wegen Ihrer eigenen obsessiven Tendenzen eher als Leistung .

Leerraum kann von Bedeutung sein (zum Beispiel in pre Elementen).

Wenn ich eine besonders große Seite hatte (das heißt groß genug, dass es ein Vorteil in minifying die HTML) verwendet, ich HTML Tidy und gecached die Ergebnisse.

tidy -c -n -omit -ashtml -utf8 --doctype strict \
    --drop-proprietary-attributes yes --output-bom no \
    --wrap 0

Ich denke, Sie werden mit diesem Ansatz in Fragen mit Ladezeit läuft am Ende, wie die get Inhalte, Leerzeichen entfernen, und Preg ersetzen Anrufe viel länger dauern werden als das, was zu tun Bandbreite der minimierte HTML wird sparen Sie .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top