Kom ihåg mig?
Home Menu

Menu


BRA verktyg för att komprimera css och js

Ämnesverktyg Visningsalternativ
Oläst 2007-03-12, 00:02 #1
totoos avatar
totoo totoo är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Nov 2006
Inlägg: 730
totoo totoo är inte uppkopplad
Mycket flitig postare
totoos avatar
 
Reg.datum: Nov 2006
Inlägg: 730
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.
totoo är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-03-12, 07:55 #2
martines avatar
martine martine är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Mar 2005
Inlägg: 767
martine martine är inte uppkopplad
Mycket flitig postare
martines avatar
 
Reg.datum: Mar 2005
Inlägg: 767
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…
martine är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-03-12, 10:23 #3
Mikael Simonsson Mikael Simonsson är inte uppkopplad
Nykomling
 
Reg.datum: Jun 2004
Inlägg: 34
Mikael Simonsson Mikael Simonsson är inte uppkopplad
Nykomling
 
Reg.datum: Jun 2004
Inlägg: 34
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.)
Mikael Simonsson är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-03-12, 10:41 #4
dotvoid dotvoid är inte uppkopplad
Medlem
 
Reg.datum: Apr 2006
Inlägg: 199
dotvoid dotvoid är inte uppkopplad
Medlem
 
Reg.datum: Apr 2006
Inlägg: 199
Dojo anses vara riktigt bra.
http://dojotoolkit.org/docs/compressor_system.html
dotvoid är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-04-29, 21:28 #5
totoos avatar
totoo totoo är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Nov 2006
Inlägg: 730
totoo totoo är inte uppkopplad
Mycket flitig postare
totoos avatar
 
Reg.datum: Nov 2006
Inlägg: 730
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.
totoo är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-04-30, 17:34 #6
tedeh tedeh är inte uppkopplad
Medlem
 
Reg.datum: Apr 2006
Inlägg: 51
tedeh tedeh är inte uppkopplad
Medlem
 
Reg.datum: Apr 2006
Inlägg: 51
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 %.
tedeh är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-04-30, 18:54 #7
totoos avatar
totoo totoo är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Nov 2006
Inlägg: 730
totoo totoo är inte uppkopplad
Mycket flitig postare
totoos avatar
 
Reg.datum: Nov 2006
Inlägg: 730
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.
totoo är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 01:01.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017