Dies ist ein hinterhältiger Trick. Es wurde von Jacob Seidelin bei Nihilogic.dk entwickelt und wurde von einigen Teilnehmern des 10 -km -Wettbewerbs an einer Veranstaltung verwendet
Obwohl es einige Streitigkeiten darüber gibt, ob es dem Geist des Ereignisses entspricht.
Das heißt, es ist interessant zu sehen, wie es gemacht wird. Schauen wir uns also an. Hier sind die Schritte:
1. Minimieren Sie Ihre Bewerbung
Der erste Schritt besteht darin, Ihr endgültiges CSS und Ihr JavaScript mit jedem anständigen Komprimierungswerkzeug auf die kleinstmögliche Größe zu drücken.
2. codieren Sie Ihre CSS und JavaScript als Grafik
Dies ist der schwierige Teil. Sie müssen Ihre ascii-codierten CS- und JavaScript-Dateien in ein einzelnes binäres Bild konvertieren. Das PNG -Format ist am besten, da es verlustlos ist (Ihr Code ist erhalten), verwendet die ZLIB -Komprimierung und wird von allen Browsern unterstützt.
Der Webentwickler Cal Henderson hat seinen Forschungs- und PHP/Perl-Code veröffentlicht, der Code mit verschiedenen Formaten wie 1-Bit, 8-Bit, 24-Bit usw. in ein Bild umwandelt. Sie können die Jquery-Bibliothek hier als 1-Bit-Quadrat anzeigen
.
Das PNG kann mithilfe von Tools wie Smush.it und PNGOUT weiter reduziert werden.
3. Extrahieren Sie den Code aus dem Bild
Wir müssen jetzt das Bild laden und in ausführbares Code umwandeln. Dies kann erreicht werden, indem das Bild unter Verwendung der Methode von Drawimage () in ein Canvas -Element geladen wird. Einzelne Pixel werden dann mit GetImagedata () gelesen
, und konvertiert in eine Zeichenfolge, die an eval () oder in das DOM eingebettet werden kann.
Die Ergebnisse variieren, aber Einsparungen der Dateigrößen von 75% können erzielt werden. In einigen Fällen kann das Bildformat mit GZIP komprimiertem Dateien besiegen. Sie können also mit 40 KB Code am 10 -km -Wettbewerb teilnehmen!
Hat dies eine reale Verwendung?
Hat diese Technik, abgesehen von Betrug bei Wettbewerben, eine reale Anwendung? Es ist ein interessanter Hack, aber GZIPPing -Quelldateien auf dem Server führen normalerweise zu einer besseren Komprimierung und es ist weitaus einfacher zu implementieren.
Ich konnte jedoch sehen, dass die Technik für die Steganographie verwendet oder sensible Code von Anfänger -Hackern verschlüsselt. Sehr cool, aber würdest du es benutzen?
häufig gestellte Fragen zum Komprimieren von CSS, JavaScript und PNG auf Canvas
Wie verbessert die Komprimierung von CSS, JavaScript und PNG auf Leinwand die Website der Website? Dies führt zu schnelleren Ladezeiten, die die Benutzererfahrung verbessern und möglicherweise das Suchmaschinenranking Ihrer Website erhöhen können. Komprimierung funktioniert, indem unnötige Zeichen und Räume entfernt werden und im Fall von Bildern ihre Qualität auf ein Niveau reduziert werden, das immer noch akzeptabel ist, aber weniger Daten erfordert.
Mit welchen Tools kann ich CSS-, JavaScript- und PNG -Dateien komprimieren? Für CSS und JavaScript können Sie Online -Minifiker wie CSSMinifier und JavaScript Minifier verwenden. Für PNG -Dateien können Sie Bildkomprimierungswerkzeuge wie Tinypng oder ImageOptim verwenden. Diese Tools sind einfach zu bedienen und können Ihre Dateigrößen erheblich reduzieren.
Kann ich Bilder mit JavaScript im Browser komprimieren? Dies kann mit der HTML5 -Canvas -API erfolgen, mit der Sie Bilder auf eine Leinwand zeichnen und sie dann als Daten -URL in einem komprimierten Format exportieren können. Diese Methode kann jedoch komplex sein und liefern möglicherweise nicht die gleiche Komprimierung wie dedizierte Bildkomprimierungswerkzeuge. Um es zu verwenden, müssen Sie es zunächst über NPM installieren. Anschließend können Sie die Kompressfunktion verwenden, die eine Bilddatei und ein Optionsobjekt als Parameter nimmt. Mit dem Optionsobjekt können Sie das gewünschte Ausgangsformat und die Qualitätsniveau angeben. Eine der häufigsten Methoden ist die Verwendung der HTML5 -Canvas -API, um das Bild auf eine Leinwand zu zeichnen und es dann in ein komprimiertes Format zu exportieren. Eine andere Methode besteht darin, eine JavaScript-Bibliothek wie Browser-Image-Kompression zu verwenden, die eine einfache API zum Komprimieren von Bildern liefert. Fügen Sie einfach Ihren CSS -Code in das Eingabefeld ein und klicken Sie auf die Schaltfläche "Minify". Das Tool entfernen dann alle unnötigen Zeichen und Leerzeichen, was zu einer kleineren, effizienteren CSS -Datei führt. Das Miniming beinhaltet das Entfernen unnötiger Zeichen und Leerzeichen aus einer Datei, während die Komprimierung die Daten der Datei auf eine Weise codiert, die weniger Speicherplatz erfordert. Beide Techniken können die Dateigrößen erheblich reduzieren, werden jedoch normalerweise in verschiedenen Kontexten verwendet. Das Minimieren wird üblicherweise für CSS und JavaScript -Dateien verwendet, während die Komprimierung häufig für Bilder und andere binäre Daten verwendet wird.
Kann die Komprimierung die Qualität meiner Bilder beeinflussen? Wenn Sie ein Bild komprimieren, reduzieren Sie seine Daten im Wesentlichen, was zu einem Qualitätsverlust führen kann. Mit vielen Image -Komprimierungswerkzeugen können Sie jedoch die Komprimierungsstufe steuern, sodass Sie zwischen Dateigröße und Bildqualität ausgleichen können.
Ist es notwendig, alle Bilder auf meiner Website zu komprimieren? Große Bilddateien können Ihre Website verlangsamen, insbesondere für Benutzer mit langsameren Internetverbindungen. Durch die Komprimierung Ihrer Bilder können Sie sicherstellen, dass Ihre Website für alle Benutzer schnell lädt.
Wie kann ich sicherstellen, dass meine komprimierten Bilder immer noch gut aussehen? Mit vielen Image -Komprimierungswerkzeugen können Sie die Komprimierungsstufe einstellen, sodass Sie eine Ebene auswählen können, die die Dateigröße reduziert, ohne die Bildqualität merklich zu beeinflussen. Darüber hinaus stellen Sie immer Ihre komprimierten Bilder vor, bevor Sie sie veröffentlichen, um sicherzustellen, dass sie immer noch gut aussehen.
Das obige ist der detaillierte Inhalt vonKompress CSS und JavaScript mit PNGs und Leinwand. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!