Toon posts:

[JS] JavaScript Cruncher

Pagina: 1
Acties:

Verwijderd

Topicstarter
Omdat ik nogal veel bezig ben met JavaScript en dol ben op kleine bestanden, heb ik een C programma geschreven die een JavaScript bestand comprimeert. Een tijd geleden was ik op zoek naar zo'n programma en vond er één. Dat programma bleek echter vol bugs te zitten. Daarom heb ik besloten zelf een programma te schrijven die het wel goed doet.

Het programma kan je vinden op: http://www.nextavenue.com/cruncher/cruncher.zip

Tips, fouten etc; ik hoor het graag. Voor de liefhebbers; de volledige C broncode zit bij het zipje.

Via de command line bestand aanroepen...

Shoot shoot shoot... :P

[ Voor 7% gewijzigd door Verwijderd op 11-04-2004 20:26 ]


Verwijderd

Cool, ik ga er straks een even meespelen en kijken of ik de js'jes werkbaar kleiner kan krijgen. :)

  • Wolfboy
  • Registratie: Januari 2001
  • Niet online

Wolfboy

ubi dubium ibi libertas

This program crunches a given javascript file by removing all
whitespaces, comments, tags, line feeds etc.
ik kan het mis hebben maar dat is toch maar een heel klein verschil?
lijkt me niet echt noemenswaardig tenminste

Blog [Stackoverflow] [LinkedIn]


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:45

crisp

Devver

Pixelated

Wolfboy schreef op 12 april 2004 @ 00:24:
[...]

ik kan het mis hebben maar dat is toch maar een heel klein verschil?
lijkt me niet echt noemenswaardig tenminste
tsja, dat lijkt me ook iets wat je eenvoudig handmatig kan doen. Logica op een kortere manier doen lijkt me toch een betere byte-bespaarder :)

Intentionally left blank


  • LinuX-TUX
  • Registratie: December 2003
  • Laatst online: 26-05 10:16
Wolfboy schreef op 12 april 2004 @ 00:24:
[...]

ik kan het mis hebben maar dat is toch maar een heel klein verschil?
lijkt me niet echt noemenswaardig tenminste
Mwuah, ik leer op school dat een goed programma minimaal uit 50% commentaar moet bestaan, dus dat is al een winst van 50% als je zo'n proggie er overheen gooit. (jajaja, das echt java, maar toch ... scripten/programmeren, veel commentaar zou handig wezen in het bedrijfsleven voor als er uitbreidingen etc op gebouwd moeten worden, kan me er dus ook iets bij voorstellen, mag het bedrijf zelf lekker de source houden en staat de no-nonsens .js op internet voor javascript)

Desalniettemin even kijken hoe dat proggie werkt en kijken of dat proggie zelf ook nog wat onder handen kan worden genomen om kleiner gemaakt te kunnen worden :+

  • bRight
  • Registratie: Juli 2000
  • Laatst online: 27-11-2024

bRight

digitaal

Misschien ook een idee om op redelijk intelligente manier alle variabelen te renamen?
Kan ook een hoop besparing opleveren. Door het weghalen van de line feeds ed wordt het toch al een onleesbare brei, dus waarom niet :)

  • Wolfboy
  • Registratie: Januari 2001
  • Niet online

Wolfboy

ubi dubium ibi libertas

moet te doen zijn ja, zoeken op var naam_van_var en daarna naam_van_var. vervangen door a ofzo :)
beetje rommelen met wat regexpjes en het zou moeten lukken

Blog [Stackoverflow] [LinkedIn]


Verwijderd

Topicstarter
Crisp: commentaar, line feeds en spaties kan je opzich met de hand weghalen. Veel succes met een 60 kb bestand. Deze cruncher haalt alle onnodige rotzooi weg. Vandaag ga ik een andere parser (proberen te) maken die alle gedeclareerde variabelen scant.
Het vervangen van die variabelen kan nog een probleem worden.

i.e.

code:
1
2
var myVar = 4;
eval("alert(my" + "Var);");


Ranzig? Zeker. Mogelijk? Ja. Ik zou misschien wel gedeclareerde variabelen in functies kunnen vervangen als die functie geen eval statement heeft...
Als jullie nog tips hebben? Misschien toch alles vervangen en aangeven waar de knelpunten zitten? Bij eval, unescape etc...

/Edit

Heb iig nog een idee om variabel declaraties korter te schrijven. Als twee statements na elkaar een variabel declaratie zijn, dan is het efficienter om de declaraties in één statement te zetten.

i.e.
code:
1
2
3
var foo=4, boo=3;
var zoo=2;
// wordt: var foo=4, boo=3, zoo=2;

[ Voor 23% gewijzigd door Verwijderd op 12-04-2004 09:26 ]

Pagina: 1