2013-04-24 4 views
13

Warum gehen die Leute durch all die Schmerzen der Minimierung von JavaScript-und CSS-Dateien, wenn sie nur GZIP Kompression auf dem Webserver einschalten können? Dies ergibt das gleiche (oder sogar besseres) Ergebnis in der Verkehrsleistung.Warum minimieren Menschen CSS und Javascript, wenn wir gzip haben?

Gibt Minification zusätzliche Vorteile?

+0

Minifizierung Angelegenheiten für bestimmte mobile Geräte, wo die Dateien über eine bestimmte Größe nicht im Cache gespeichert wurden. – cimmanon

+2

Warum nicht beides? Kommentare entfernen, zumindest, und dann gzipping? – FelipeAls

+0

Verkettung ist wichtig, um die Anzahl der HTTP-Anfragen zu reduzieren, aber die Besessenheit der Web-Gemeinschaften von der Vermintung finde ich erbärmlich. –

Antwort

10

Sie können gzip (das normalerweise in Webserver integriert ist) in Kombination mit Minification verwenden. Die Verkleinerung macht viele zusätzliche Dinge, die gzip nicht entfernen kann, wie zB das Entfernen von Kommentaren, das Umbenennen von langen Variablen in kürzere Variablennamen, usw.

Die resultierenden übertragenen Daten können wesentlich kleiner sein als einfach das ursprüngliche. Es hängt natürlich von der Quelle .js ab.

Sie können Compressorater (http://compressorrater.thruhere.net/) auschecken. Sie können Ihre .js einwerfen und es wird mit einer Vielzahl von Bibliotheken mit und ohne gzip minimieren und zeigen Sie die Ergebnisse. Sie können den Vergleich zwischen einfach gzipped und gzipped + minified von den verschiedenen Bibliotheken sehen.

+0

Eigentlich kann das Reduzieren von CSS keine Namen verkürzen, nur einige unnötige Zeichen und Kommentare entfernen, was manchmal sehr wenig ist;) Ich habe gerade eine verkleinerte + gzip vs gzip Version einer meiner CSS Dateien getestet und der Unterschied war so klein, dass ich nicht einmal ärgere mich, es zu minimieren (ja, dieses Projekt hat keinen Prozess dafür eingerichtet, wenn es so wäre, würde ich mir nicht die Mühe machen, über diesen Unterschied nachzudenken :)) – Pavelloz

2

Durch das Minimieren von Javascript und CSS wird nicht nur der Inhalt gezippt, sondern auch andere Optimierungen hinzugefügt, die beim Zippen nicht möglich sind.

Zum Beispiel können Sie durch Minimieren den Namen einer langen Variablen ändern. Alle Instanzen dieser Variablen sind dann nur ein Zeichen. Eine andere Sache, die Minification tut, ist das Entfernen von Kommentaren. Dies kann nicht mit gzip geschehen.

Abgesehen davon, dass minification bündelt in der Regel verschiedene Dateien in wodurch man die Menge der Anfragen

Neben minification reduzieren Sie auch gzip

+0

"du kannst den Namen einer langen Variable ändern." - Das ist nicht die Minimierung. Das nennt man Verschleierung. – Ian

+2

Durch die Minimierung wird auch die Länge von Variablennamen reduziert (wenn dies als sicher erachtet wird). Probieren Sie googles Minifier oder YUI-Minifier aus und Sie werden sehen, dass es das auch tut. Offensichtlich verschleiert dies auch den Code, da er schwerer zu lesen ist, also ist es im Grunde eine Zwei-in-Eins-Operation. – Kenneth

+0

Aber das ist nicht, was Verfälschung ist. Durch die Minimierung werden Leerräume, unnötige Zeichen, Kommentare usw. entfernt. Verschleierung ändert den Code, lässt aber seine Funktionalität gleich. Nur weil bestimmte "Minifier" beides tun, heißt das nicht, dass das Verkleinern ist. Ich weiß, dass ich technisch bin, aber immer noch – Ian

0

gzip-Kompression verwendet werden soll:

Einfach ausgedrückt, gzip-Komprimierung funktioniert, indem ähnliche Zeichenfolgen in einer Textdatei gefunden werden und diese Zeichenfolgen vorübergehend ersetzt werden, um die Gesamtdateigröße zu verringern. Diese Form der Komprimierung ist besonders gut für das Web geeignet, da HTML- und CSS-Dateien in der Regel viele wiederholte Strings enthalten, z. B. Leerzeichen, Tags und Stildefinitionen.

Minifizierung:

ist der Prozess der alle unnötigen Zeichen aus dem Quellcode zu entfernen, ohne seine Funktionalität zu ändern. Diese unnötigen Zeichen enthalten normalerweise Leerraumzeichen, neue Zeilenzeichen, Kommentare und manchmal Blockbegrenzer, die verwendet werden, um dem Code Lesbarkeit zu verleihen, sind aber nicht erforderlich, um ausgeführt zu werden.

Referenzen:

+6

Bitte beantworten Sie die Frage. –

+3

@ JonasÄppelgran Die Unterscheidung zwischen Gzip und Minification beantwortet die Frage.Wenn Sie weitere Erläuterungen benötigen, erklären Sie bitte, wie – Ian

+5

Erklären zugrunde liegenden Fakten ist keine der drei Fragen zu beantworten Vorträge und es könnte gut sein, ein Teil einer guten Antwort, aber es ist nutzlos und beleidigend die Art, wie Sie es bereitstellen. –