Webhack

Javascript und CSS per PNG packen

Um möglichst viel Javascript- und CSS-Code in 10 KByte unterzubringen, setzt Entwickler Alex Le auf einen Trick: Er verpackt Javascript und CSS in einer PNG-Datei und nutzt die entsprechenden Kompressionsroutinen des Browsers.

Anzeige

Für seinen Beitrag im Rahmen des Wettbewerbs 10K Apart griff Le eine Idee von Jacob Seidelin alias Nihilogic auf: Dieser hatte 2008 gezeigt, wie sich Javascript mit Hilfe einer PNG-Grafik packen lässt. So gelang es ihm damals, ein kleines in Javascript realisiertes und direkt im Browser ablaufendes Super-Mario-Spiel von 14 auf 8 KByte zu komprimieren. Die Größe der Javascript-Bibliothek Prototype konnte er so von 123 KByte auf 30 KByte reduzieren.

Dabei wird aus dem Javascript- und CSS-Code eine PNG-Datei erzeugt. Dazu wird jedem ASCII-Zeichen ein Wert zwischen 0 und 255 zugeordnet und ein Pixel mit entsprechender Farbe erzeugt. So entsteht ein Bild, das augenscheinlich nur Rauschen enthält.

Um die so gepackten Daten im Browser zu entpacken, wird das Bild in ein Canvas-Objekt gezeichnet. Der Browser entpackt dabei die Daten automatisch, so dass der Code wieder im Klartext zur Verfügung steht und aus dem Canvas-Objekt ausgelesen werden kann.

Die Technik griff Le auf, um eine möglichst komplexe Demo in 10 KByte Code unterzubringen. Sämtlicher HTML-, Javascript- und CSS-Code sowie das notwendige HTML dürfen für den Wettbewerb zusammen nur 10.240 Byte umfassen und müssen komplett im Browser laufen, ohne Rückgriff auf einen Server.

So entstand ein Build-Script, das sämtliche Javascript- und CSS-Dateien mit Hilfe des YUI-Compressors minifiziert, in einen einzelnen String umwandelt und diesen anschließend in ein PNG-Bild umwandelt.

Den durch den Trick gewonnenen Platz innerhalb der 10-KByte-Grenze nutzte Le, um seinen Githubfinder zu implementieren, sein eigentlicher Wettbewerbsbeitrag. Mit der Applikation im Stil von Apples Finder lassen sich Git-Repositories erkunden.

Relevant ist der Trick allerdings in erster Linie für entsprechende Wettbewerbe, um mit allen für einen Wettbewerbsbeitrag notwendige Dateien unter dem gesetzten Limit zu bleiben und den Aufwand einer eigenen Routine zum Entpacken zu sparen.


fr.member 17. Sep 2010

wohl kaum... kkrieger ist auf basis des werkkzeug3 entstanden. der typ, wie du ihn...

Dr Wissen 26. Aug 2010

Bitte die AJAX-Software neu starten

keule1234 24. Aug 2010

JavaScript ist turing vollständig - im Prinzip kann man damit alles erdenkliche machen...

0X00140E 24. Aug 2010

Also in svg kann man javascript einbetten, ich frage mich was wohl gefährlicher ist...

2.null 23. Aug 2010

Wo kann man das ganze herunterladen? Was braucht man alles um die PNG's zu erstellen?

Kommentieren




Anzeige
  1. IT Ingenieur/-in Fachgebiet Desktop Basic
    ZF Friedrichshafen AG, Friedrichshafen
  2. (Junior) IT-Consultant (m/w)
    Tangram TeleOffice GmbH, Herrenberg
  3. Produkt Manager (m/w)
    REALTECH Services GmbH, Walldorf
  4. IT-System Engineer (m/w) – Microsoft Backoffice Technologie
    InfraServ GmbH & Co. Gendorf KG, Burgkirchen

 

Detailsuche


Folgen Sie uns
       

Meistgelesen
  1. Samsung Galaxy S3

    Siri braucht sich nicht zu fürchten

  2. Schmerzlos

    MIT-Forscher entwickeln Injektor mit Lorentzkraft-Antrieb

  3. CSU-Vizechefin

    Aussagen zur Internetsucht sind absurd

  4. iOS

    Untethered Jailbreak für iOS 5.1.1 erschienen

  5. USB-Sticks und Speicherkarten

    Hersteller wehren sich gegen neue "Mondtarife"


Meistkommentiert
  1. Kommentare: 385 | letzter Beitrag 10:32 Uhr

  2. Kommentare: 221 | letzter Beitrag 09:51 Uhr

  3. Kommentare: 215 | letzter Beitrag 25.05. 11:40

  4. Kommentare: 135 | letzter Beitrag 11:44 Uhr

  5. Kommentare: 94 | letzter Beitrag 25.05. 12:13

Mehr


  1. iOS

    Untethered Jailbreak für iOS 5.1.1 erschienen

  2. CSU-Vizechefin

    Aussagen zur Internetsucht sind absurd

  3. Schmerzlos

    MIT-Forscher entwickeln Injektor mit Lorentzkraft-Antrieb

  4. Sony

    Music Unlimited nun auch fürs iPhone

  5. Samsung Galaxy S3

    Siri braucht sich nicht zu fürchten

  6. Gewerkschaft

    Entlassungen werden bei HP-Deutschland voll durchschlagen

  7. Tex Murphy

    Privatermittler sucht Privatinvestoren

  8. Studie

    Fast jeder zweite Nutzer hört legal Musik im Netz

  9. Funcom

    The Secret World mit neuen Plänen bis zum Start

  10. Play Store

    Google startet Bezahlabos in Android-Anwendungen



Haben wir etwas übersehen?

E-Mail an news@golem.de


The Elder Scrolls 5 Skyrim: Update für Kämpfe hoch zu Ross
The Elder Scrolls 5 Skyrim
Update für Kämpfe hoch zu Ross

Die Kavallerie hält Einzug in Himmelsrand: Mit Patch 1.6 liefert Bethesda die Möglichkeit nach, in Skyrim auch auf dem Rücken von Pferden zu kämpfen. PC-Spieler dürfen bereits jetzt hoch zu Ross das Schwert schwingen.

  1. Skyrim unterstützt Kinect Der Drachenschrei ins Mikrofon
  2. The Elder Scrolls 5 Patch 1.5 macht Skyrim schöner
  3. Selbstbau-VR Skyrim mit Videobrille, Headtracker und Kinect

PGP vs. Geheimdienste: "PGP ist weiterhin sicher"
PGP vs. Geheimdienste
"PGP ist weiterhin sicher"

Symantec hat sich zu den Aussagen der Bundesregierung geäußert, nach denen Geheimdienste in der Lage seien, SSH oder PGP zu knacken oder zu umgehen. Mathematisch gesehen sei kein wirksamer Angriff bekannt.

  1. Bundesregierung Deutsche Geheimdienste können PGP entschlüsseln
  2. Mobilfunk Achtung, Eltern lesen mit!
  3. Überwachungskameras Aldi-Manager zoomten Kundinnen unter den Rock

Schadsoftware: Empfänger von Angry-Birds-SMS muss Strafe zahlen
Schadsoftware
Empfänger von Angry-Birds-SMS muss Strafe zahlen

14.000 Android-Nutzer weltweit haben sich eine gefälschte Angry-Birds-App heruntergeladen, die beim Öffnen eine 15 Pfund teure Kurznachricht per SMS verschickt. Der Dienstleister, dessen Kontrolle versagte, muss das Geld nun zurückzahlen und 50.000 Pfund Strafe zahlen.

  1. Rovio Angry Birds rasen mit Kimi durch Monaco
  2. Rovio Eine Milliarde Angry Birds
  3. Rovio Entertainment 48 Millionen Euro Gewinn mit Angry Birds

Zum Artikel