JQuery hat zwei Versionen zum Herunterladen, eine ist Production (19 KB, Minified und Gzipped) und die andere ist Development (120 KB, Uncompressed Code) .
Jetzt ist die kompakte 19-KB-Version, wenn Sie sie herunterladen, immer noch ein ausführbarer Javascript-Code. Wie haben sie es verdichtet? Und wie kann ich meinen Code auch so "minimieren"?
javascript
gzip
KalEl
quelle
quelle
Antworten:
DIY Minifizierung
Kein Minifier kann einen fehlerhaften Code richtig komprimieren.
In diesem Beispiel möchte ich nur zeigen, wie viel ein Minifier tut.
Was Sie tun sollten, bevor Sie minimieren
Und in Bezug auf jQuery ... ich benutze jQuery nicht. JQuery ist für alte Browser, es wurde aus Kompatibilitätsgründen erstellt. Überprüfen Sie caniuse.com, fast alles funktioniert auf jedem Browser (auch ie10 ist jetzt standardisiert), ich denke jetzt ist es Nur hier, um Ihre Webanwendung zu verlangsamen ... Wenn Sie die mögen
$()
, sollten Sie Ihre eigene einfache Funktion erstellen. Und warum sollten Sie sich die Mühe machen, Ihren Code zu komprimieren, wenn Ihre Clients jedes Mal das 100-KB-Abfrageskript herunterladen müssen? Wie groß ist Ihr unkomprimierter Code? 5-6kb ..? Ganz zu schweigen von den unzähligen Plugins, die Sie hinzufügen, um es einfacher zu machen.Originalcode
Wenn Sie eine Funktion schreiben, haben Sie eine Idee, beginnen mit dem Schreiben von Dingen und manchmal erhalten Sie so etwas wie den folgenden Code. Der Code funktioniert. Jetzt hören die meisten Leute auf zu denken und fügen ihn einem Minifier hinzu und veröffentlichen ihn.
Hier wird der minimierte Code ausgegeben (ich habe die neuen Zeilen hinzugefügt)
Minimiert mit ( http://javascript-minifier.com/ )
Aber sind all diese Variablen, Wenns, Schleifen und Definitionen notwendig?
Meistens NEIN !
OPTIONAL (erhöht die Leistung und kürzeren Code)
Math
)while
,for
... nichtforEach
)"{}","()",";",spaces,newlines
Wenn ein Minifier den Code komprimieren kann, machen Sie es falsch.
Kein Minifier kann einen fehlerhaften Code richtig komprimieren.
DIY
Es macht genau das Gleiche wie die obigen Codes.
Performance
http://jsperf.com/diyminify
Sie müssen immer überlegen, was Sie brauchen:
Bevor Sie sagen "Niemand würde Code wie den folgenden schreiben", lesen Sie die ersten 10 Fragen hier ...
Hier sind einige Beispiele, die ich alle zehn Minuten sehe.
Willst du einen wiederverwendbaren Zustand
Ja nur benachrichtigen, wenn es existiert
Alarm ja oder nein
Konvertieren Sie eine Zahl in eine Zeichenfolge oder umgekehrt
Runde eine Zahl
Etage eine Nummer
Schaltergehäuse
versuche es zu fangen
mehr wenn
aber
indexOf
ist langsam lesen Sie diese https://stackoverflow.com/a/30335438/2450730Zahlen
Einige nette Artikel / Seiten, die ich über bitweise / Kurzschrift gefunden habe:
http://mudcu.be/journal/2011/11/bitwise-gems-and-other-optimizations/
http://www.140byt.es/
http://www.jquery4u.com/javascript/shorthand-javascript-techniques/
Es gibt auch viele jsperf-Sites, die die Leistung von Shorthand & Bitwsie zeigen, wenn Sie mit Ihrer Lieblings-Suchmaschine suchen.
Ich könnte stundenlang eins machen ... aber ich denke, es ist genug für jetzt.
Wenn Sie Fragen haben, fragen Sie einfach.
Und merke dir
Kein Minifier kann einen fehlerhaften Code richtig komprimieren.
quelle
(10.4899845 +.5)|0
ergibt 10 statt 11.Sie können einen der vielen verfügbaren Javascript-Minifier verwenden.
quelle
Google hat gerade einen Javascript-Compiler zur Verfügung gestellt, mit dem Sie Ihren Code minimieren, tote Code-Zweige beseitigen und weitere Optimierungen vornehmen können.
Google Javascript Compiler
Grüße
K.
quelle
Neben dem Minimieren können Sie es auch mit base64 codieren. Dadurch wird Ihre Datei viel komprimierter. Ich bin sicher, Sie haben js-Dateien gesehen, die in eine eval () - Funktion mit übergebenen Parametern (p, a, c, k, e, r) eingeschlossen sind. Ich habe es in diesem Artikel gelesen. Wie minimiere ich eine Javascript-Datei?
quelle
Ich habe ein winziges Skript geschrieben, das eine API aufruft, um Ihr Skript zu minimieren. Schauen Sie sich das an:
Verwendung:
quelle
Ich musste kürzlich die gleiche Aufgabe ausführen. Während die bei The JavaScript CompressorRater aufgelisteten Kompressoren hervorragende Arbeit leisten und das Tool sehr nützlich ist, spielten die Kompressoren mit dem von mir verwendeten jQuery-Code ($ .getScript- und jQuery.fn-Prüfungen) nicht gut. Sogar der Google Closure Compressor verschluckte sich an denselben Zeilen. Obwohl ich die Knicke irgendwann hätte ausbügeln können, war es viel zu viel Schielen, um es ständig zu tun.
Diejenige , die schließlich ohne Probleme funktionierte, war UglifyJS (danke @ Aries51 ), und die Komprimierung war nur geringfügig geringer als bei allen anderen. Und ähnlich wie Google hat es eine HTTP-API. Packer ist auch nett und hat eine Sprachimplementierung in Perl, PHP und .NET.
quelle
Derzeit gibt es zwei Möglichkeiten, Ihren Code zu minimieren:
http://yui.github.io/yuicompressor/
Viele solcher Tools sind auch für Node und npm verfügbar. Es empfiehlt sich, die Mnification von Javascript mit Grunt zu automatisieren.
http://www.modify-anything.com/
quelle
Sie können den Javascript-Minifier von ubercompute.com verwenden, um Ihren Code zu minimieren. Er minimiert Ihren Javascript-Code bis zu 75% seiner ursprünglichen Version.
quelle