Warum minimieren Menschen Vermögenswerte und nicht die HTML?
Frage
Warum schlagen die Leute vor, Web -Assets wie CSS und JavaScript zu minimieren, aber sie schlagen nie vor, dass das Markup abgebrochen wird? CSS und JavaScript können auf vielen verschiedenen Seiten verwendet werden, während das Markup jedes Mal geladen wird, wodurch das Markup weitaus wichtiger wird.
Lösung
Ein wahrscheinlicher Grund ist, dass sich Markup in der Regel viel häufiger ändert und für jede Seitenlast abgebaut werden muss. Zum Beispiel gibt es auf einer bestimmten Stack -Überlaufseite Zeitstempel, Benutzernamen und Wiederholungszahlen, die sich mit jeder Seite ändern könnten, dh Sie müssten auch für jede Seite laden. Mit "statischen" Dateien wie CSS und JavaScript können Sie weitaus seltener minimieren. In den Köpfen einiger ist es die Arbeit im Voraus wert.
Bedenken Sie auch, dass jeder große Webserver und jeder Browser GZIP unterstützen, das Ihr ganzes Markup komprimiert (schnell) Wie auch immer. Da das Minimieren langsamer und sowieso viel weniger effektiv ist als GZIPPing, können Webmaster entscheiden, dass das Miniming für jede Seitenlast die Verarbeitungskosten nicht wert ist.
Andere Tipps
Die hier geschriebenen Antworten sind extrem veraltet oder machen manchmal keinen Sinn. Viele Dinge haben sich gegenüber dem alten 2009 geändert, also werde ich versuchen, dies richtig zu beantworten.
Kurze Antwort - Sie sollten auf jeden Fall HTML minifieren. Es ist heute trivial und gibt ungefähr 5% Beschleunigung. Für eine längere Antwort lesen Sie die ganze Antwort
In den alten Zeiten minderten die Menschen CSS/JS manuell (indem sie es durch ein bestimmtes Werkzeug zum Minimieren durchführten). Es war schwierig, den Prozess zu automatisieren und erforderte definitiv einige Fähigkeiten. Da es weiß, dass viele Standorte auf hohem Niveau im Moment nicht Gzip verwenden (was trivial ist), ist es verständlich, dass Menschen das Minimieren von HTML ungern zögern.
Warum minitierten die Leute JS, aber nicht HTML?? Wenn Sie JS minifieren, machen Sie die folgenden Dinge:
- Kommentare entfernen
- Entfernen Sie Rohlinge (Registerkarten, Räume, Newlines)
- Ändern Sie lange Namen zu kurz (
var isUserLoggedIn
zuvar a
)
Das gab auch in alten Tagen viel Verbesserung. Aber in HTML konnten Sie kurz nicht lange Namen ändern, auch in dieser Zeit gab es fast nichts zu kommentieren. Das einzige, was übrig blieb, ist das Entfernen von Räumen und Newlines. Was nur eine geringe Menge an Verbesserung ergibt.
Ein hier geschriebenes falsches Argument ist, dass die Minifikation nicht sinnvoll ist, weil Inhalte mit GZIP serviert werden. Das ist völlig falsch. Ja, es ist sinnvoll, dass GZIP die Verbesserung der Minifikation verringert, aber warum sollten Sie GZIP -Kommentare, Weißespaces sollten, wenn Sie sie richtig schneiden und nur einen wichtigen Teil von GZIP haben können. Es ist dasselbe, als hätten Sie einen Ordner zum Archivieren, der einen Mist enthält, den Sie nie verwenden werden, und Sie entscheiden sich, ihn einfach zu rollen, anstatt es aufzuräumen und zu rippen.
Ein weiteres Argument, warum es sinnlos ist, eine Minifikation zu machen, ist, dass es mühsam ist. Vielleicht war dies 2009 wahr, aber nach dieser Zeit erschienen neue Tools. Im Moment müssen Sie Ihr Markup nicht manuell minifieren. Mit Dingen wie Grunzen Es ist trivial zu installieren Grunzen-contrib-htmlmin und um es zu konfigurieren, um Ihre HTML zu minimieren. Alles, was Sie brauchen, ist wie 2 Stunden, um Grunzen zu lernen und alles zu konfigurieren, und dann wird alles automatisch in weniger als einer Sekunde durchgeführt. Klingt so 1 Sekunde (was Sie sogar automatisieren können, um nichts mitzuhalten Grunzen-Contrib-Watch) ist für ungefähr 5% der Verbesserung nicht wirklich so schlecht (auch mit GZIP).
Ein weiterer Argument ist, dass CSS und JS statisch sind, und HTML wird vom Server generiert, sodass Sie es nicht vorab vorab. Dies war auch im Jahr 2009 wahr, aber derzeit mehr und mehr Websites sehen aus wie eine einzelne Seiten -App, bei der der Server dünn ist und der Client alle Routing, Vorlagen und andere Logik durchführt. Der Server gibt Ihnen also nur JSON Und der Kunde macht es. Hier haben Sie viel HTML für die Seite und verschiedene Vorlagen.
Also, um meine Gedanken zu beenden:
- Google minimiert HTML.
- PageSpeed bittet Sie, HTML zu minimieren
- Es ist trivial zu tun
- Es gibt ~ 5% der Verbesserung
- Es ist nicht dasselbe wie Gzip
Bedenken Sie:
HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Demo</title>
<link rel="stylesheet" type="text/css" href="nonminify.css"/>
</head>
<body>
<div title="My non minifiable page">
<p class="http://www.example.com/classes/class/lorem-ipsum">
Lorem ipsum dolor sit amet, consectetur adipisicing elit,
sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris
nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in
reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
pariatur. Excepteur sint occaecat cupidatat non proident, sunt in
culpa qui officia deserunt mollit anim id est laborum.
</p>
</div>
</body>
</html>
Mit dieser CSS -Datei:
div[title="My non minifiable page"]
p[class~="http://www.example.com/classes/class/lorem-ipsum"]
{
white-space:pre;
}
Angesichts der Tatsache ist es für einen HTML -Minifikator effektiv unmöglich, der nur die HTML -Datei sehen kann, um alles zu finden, was sie sicher minifieren kann.
Ich nehme an, es ist schwierig, weil manchmal Dinge wie weißer Raum zum Formatieren verwendet werden, vielleicht je nach DocType.
Seitengeschwindigkeit empfiehlt das Minimieren von Markup:
http://code.google.com/speed/pagespeed/docs/payload.html#minifyhtml
Markup wird heutzutage in der Regel dynamisch erzeugt, und selbst wenn statisch ein paar Seiten sind. JavaScript und CSS werden normalerweise in einer Art von Datei pro Standort abgebaut und daher viel einfacher manuell (oder das Skript) zu minimieren.