FAQ |
Kalender |
2007-03-12, 00:02 | #1 | |||
|
||||
Mycket flitig postare
|
Tja
Nu har jag testat typ fem olika verktyg för att komprimera javascript. Minns inte vad alla hette, men de två senaste är iaf http://javascriptcompressor.com/ phpJSO Men INGET av dem har klarat av att få mina script att fungera perfekt efteråt. Jag är en ganska hardcore js-användare (leker t.ex. med klasser och prototyper etc) så det kanske är rimligt att jag gör saker som inte dessa script är förberedda på, eller så gillar den inte min kodstil eller nåt. Alla metoder jag har testat (typ de fem första som kommer om man googlar på "software compress javascript") har fått mina funktioner att sluta fungera. Finns det något pålitligt verktyg eller ska jag behöva göra ett själv? Jag är rätt osugen på det då det garanterat är en del jobb, men får väl göra det om inget funkar felfritt. Vill även komprimera css-filer. Tack edit: hittade en som funkade... http://www.creativyst.com/Prod/3/ Men den komprimerar å andra sidan inte speciellt bra. Kom ned till ca 75% men kan lätt komma längre... Denna behåller en viss läsbarhet och det har jag inte något intresse av. Jag kan även tillägga att jag "tror" att jag föredrar en sån komprimering som inte kräver speciell dekomprimering, utan jag syftar mest helt enkelt på att ta bort whitespace och radbrytningar. |
|||
Svara med citat |
2007-03-12, 07:55 | #2 | |||
|
||||
Mycket flitig postare
|
Du kan ju alltid skriva ett eget regexp-skript med Perl eller liknande. Eller se till att du skriver dina skript utan mellanslag och använda korta variabler och funtionsnamn, typ if(f)alert('Hallo');var n=document.getElementById('t').style;n.color='red' ; så att det blir så kompakt som möjligt.
I slutändan är väl egentligen inte minimal plats utan att det fungerar så bra som möjligt på så många system som möjligt det viktigaste… |
|||
Svara med citat |
2007-03-12, 10:23 | #3 | ||
|
|||
Nykomling
|
http://dean.edwards.name/packer/ kanske kan vara något? Om jag inte har fel så använder bland annat JQuery detta.
(Nu är det en "Compressor/Obfuscator" så att läsbarheten är i princip noll.) |
||
Svara med citat |
2007-03-12, 10:41 | #4 | ||
|
|||
Medlem
|
Dojo anses vara riktigt bra.
http://dojotoolkit.org/docs/compressor_system.html |
||
Svara med citat |
2007-04-29, 21:28 | #5 | |||
|
||||
Mycket flitig postare
|
Sådär två månader efter att jag blev klar med min egen komprimerare så kanske jag ska berätta lite om läget.
Den främsta anledningen till att jag inte fick min kod att fungera med någon av de där komprimerarna på nätet var att min kod inte var helt korrekt. Jag har mycket javascript, okomprimerat använder jag ungefär 100k, och allt fungerade bra i både ie, fx och opera. Dock när man klämmer ihop koden så ställs det lite mer krav. Ett fel jag gjorde på många ställen var: mittObjekt.onclick = function(a,B) { ... } och glömde semilkol efter sista klammern, som är ganska lätt att glömma. Det ska alltså stå mittObjekt.onclick = function(a,B) { ... }; Ingen browser har klagat på detta förutsatt att det har vart space eller ny rad efter. Så det är saker jag har lärt mig under tiden jag har utvecklat mitt egna verktyg. - Och eftersom jag inte kände till varför mina script envisades med att gå sönder så involverade jag en enkel parser som helt enkelt har viss koll på kodregler och kontrollerade att mina rader så bra ut innan den komprimerade. Min komprimerare är rätt bra, men den får storstryk av de bästa på nätet. En dump från några en av mina testsessioner säger: "Original total file size: 57.013 kb New file size: 39.009 kb" Och i just den är många texter inblandade, och de kan ju tyvärr inte komprimeras... Kan och kan... Allt går, men det är ju en helt annan historia, man går ju inte in och raderar mellanslag ur dem etc. Ofta landar det på ca 50% - vilket är rätt bra. Jag har kört denna 39k-kod genom en på nätet som fick ned det till typ 29, men då gör den rätt jäkla obskyra grejer alltså. Den trollar om koden från grunden och lägger in en massa eval() etc och trollar som fan. Om den lösningen är bra i praktiken vet jag inte. Den kanske förstör viktiga saker som window.onload etc och den kanske gör browsern seg då browsern får trolla bra mycket mer än vad scriptet normalt skulle kräva. Sen har min andra fördelar - och det är att den är skräddarsydd för mina applikationer. Den komprimerar flera filer samtidigt och lägger dem i den katalog jag vill ha dem etc. Jag kanske orkar lägga upp den på nätet sen så får ni testa. Jag har inte rört den på snart två månader som sagt, men om jag får tråkigt sen så kanske jag tar upp kampen och försöker pressa ytterligare. Jag vet att det går, men jag hade ingen lust. T.ex. skulle den kunna optimera bort paranteser och klamrar, men har man inte jäkligt bra koll på läget så kan det orsaka farliga buggar, så det var inget jag har vågat röra än. |
|||
Svara med citat |
2007-04-30, 17:34 | #6 | ||
|
|||
Medlem
|
Vad är det för tillämpningar du har där det är viktigt att du har extremt små stilmallar o javaskriptfiler? Nyfiken. Spara bandbredd i all ära, men det känns som om du laborerar med de sista 5 %.
|
||
Svara med citat |
2007-04-30, 18:54 | #7 | |||
|
||||
Mycket flitig postare
|
nja, det kommer knappast ha några avgörande effekter för något alls, men jag har bakgrund som spelutvecklare/c++ så hela webbindustrin är töntigt slösaktig med resurser i jämförelse mot vad jag är van med, så jag optimerar allt så hårt jag kan. Undviker onödiga allokeringar etc, precis som jag gör i c++. Overkill - men jag vill inte bli "slapp", så jag pressar allt så hårt jag kan. Detta är märkbart i stora siter, t.ex. communityn, så det är inte förgäves.
|
|||
Svara med citat |
Svara |
|
|