-
17-07-2007, 00:45 #1
JS: alphaCompressor - minimaliseer je jscriptjes
alphaCompressor is een javascript dat als doel heeft jouw javascriptjes zo klein mogelijk te maken.
Versie 0.5 is sinds vandaag af, samen met een nieuwe interface, en is een aanzienlijke verbetering t.o.v. de vorige versie.
Changelog- Volledig herschreven cruncher (waarvan de compressor ook afhankelijk is). Nog minder kans op fouten en verbeterde stabiliteit als gevolg.
- Een deel van de compressor herschreven m.b.v. setTimeout() om te voorkomen dat browsers vast lijken te lopen tijdens het compressen.
- De compressor is nu minstens 4x sneller dan de vorige versie.
- Duidelijkere code en betere commentaar.
Korte vergelijking met enkele andere js compressors
Ik heb Caio Chassot's js lib (38,9kB), die ooit gefeatured werd op A List Apart, gecompressed met verschillende programma's. De onderstaande tabel geeft de resultaten weer. Dit zijn zeker niet alle compressors die ik tegengekomen ben, maar wel de bekendste/best presterende. Memtronic's compressor breekt echter wel eens vaker de scripts na compressie. Dat komt bij Dean Edwards packer en mijn eigen alphaCompressor bijna niet voor (ik gebruike vroeger namelijk Memtronic's js compressor vanwege de efficientie, maar heb naar aanleiding van het breken van de scripts na compressie met Memtronic's compressor mijn eigen compressor moeten schrijven).
JSMin van Douglas Crockford (grote naam in de js wereld) heb ik niet getest omdat die imo niet kwalificeert voor de test. Het is niet in js geschreven en doet ook geen echte compressie, alleen maar crunchen.Code:Compressor________Tijd_____Grootte____Reductie alphaCompressor | 1'21" | 5793 Bytes | %85.54 Memtronic | 7'22" | 6162 Bytes | %84.62 Dean E. Packer | 0'02" | 8141 Bytes | %79.69
Last edited by L0|2|23; 17-07-2007 at 14:49.
no votes
-
-
18-08-2007, 01:48 #2Approved 9-lifer
- Registered
- 01/08/02
- Location
- Gent
- Posts
- 9,675
- iTrader
- 3 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 0/361
ik ben mootoools v1.11 eens aant compressen in safari... mor ie doet er precies wel heel lang over.
ik heb gezien da zij die dean packer methode gebruiken... eens zien of em nu nog kleiner wordt, als het lukt.
dang. opera kan het nie aan, safari loopt vast en firefox vraagt heel de tijd offek het wil stoppen of doordoen.
morgen eens proberen op IELast edited by Bram; 18-08-2007 at 01:58.
If I had a nickel for every time someone told me that my idea for melting down coins to make a giant robotic parrot was a bad idea, I would have one kicka$$ giant robotic parrot.no votes
-
18-08-2007, 11:43 #3
Ik raad aan om onder de 80kByte te blijven, de compressietijd loopt namelijk exponentieel op i.f.v. de filesize (dit is een beperking van javascript strings, en kan opgelost worden d.m.v. blocks die dan wel de compressiefactor omlaag trekken). De compressie zelf is daardoor ook exponentieel in snelheid; eerst bijna niet vooruit te branden en naar het einde toe zeer snel (d.i. onafhankelijke van de totale compressietijd).
De laatste versie probeert de browser vrij te maken om nog te browsen/andere dingen te doen, maar het algoritme blijkt heel erg zwaar en soms hapert het toch nog. Opera haalt bij mij de beste resultaten (30kB op ~2min, 100kB op een half uur).
Om een paar resultaten te geven: alphaCompressor brengt jquery (uncompressed @ 62kB) naar 17.5kB in 6'20" (dat is wel wat minder dan de huidige 21.1kB die D.E.Packer hen momenteel geeft).
Er is een ding nog niet ondersteund door de compressor: conditional compiling. Als je dus in je code /*@cc_on ... @*/ hebt staan wordt die momenteel gewoon verwijderd.
alphaCompressor krijgt net als alphaCorners een recode in de nabije toekomst om deze problemen op te lossen.no votes

