Javítani-javascript kódot összenyomhatósága

Van néhány egyszerű programozási technikák, amelyek növelhetik a összenyomhatósága JS-kódot.

Például, mint ezt a forgatókönyvet:

Miután minifikációs lesz:

Másrészt, a nevét a funkció ebben a script - egy globális változó, nem tömörített megtartani képes működni hívásokat.

Ugyanezen okok miatt zsugorodik hívás űrhajó és légy módszerekkel. getDistance ().

Szóval, néhány igazi forgatókönyvet, és töltse meg YUI kompresszor.

Sajnos, nem lehet kikapcsolni egy rakás sortöréseket a YUI kompresszor, úgyhogy ez:

Ha közelről -, akkor láthatjuk, hogy a lokális változók nem összezsugorodtak belül űrhajó. és megszigorította csak flyToMoon funkciót.

ShrinkSafe csodálatos összenyomja mindent tud.

Az összes helyi változók helyébe rövidebb változatban.

Miért YUI ne szorítsák és ShrinkSafe viselte?

A lényeg szerkezet () módszer showWarning. Ez a két kompresszor különbözőképpen viszonyulnak hozzá.

ShrinkSafe figyelmen kívül hagyja a nem helyi változó nevét belülről:

Sajnos, a legújabb verzió ShrinkSafe egy hiba: ha egy változó deklarált helyileg prop, hogy helyébe:

Például, ha Val = . majd préseljük oly módon, az építési munkák helytelenül az összenyomás prop fel _1.

Én azonban soha nem hallottam, hogy valaki egy ilyen hiba ténylegesen futott. Úgy tűnik, az emberek nem nyilvánítja a helyi változókat azonos nevű azzal az érvvel tulajdonságokat. hogy a kód volt egyértelmű.

Belül az üzemeltető (obj) soha nem mondhatjuk biztosan: hogy egy változó veszünk a obj vagy külső körét.

Ezért nem változókat lehetetlen tömöríteni az.

És ha így van - kiderül, hogy a lokális változók a megnevezések is, nem nyomja be.

YUI kompresszor valamilyen okból (? Miért van ötlet) még tovább ment: ő nem minifitsiruet általában nincs lokális változók, sőt a szomszédos jellemzői.

ShrinkSafe szereti, de bagofichey.

Ha kicseréli showWarning funkciót változat nélkül az. YUI tömöríteni a kódot, minden gond nélkül:

Eredmény YUI tömörítés nélkül az:

Egy példa nem meghúzni hívásokat a tárgyra vonatkozó dokumentumban.

A kompressziós munkát, akkor ki kell cserélni a hivatkozás egy globális változó dokumentum meghívásával helyi funkciót.

Például így:

Fellebbezés a dokumentum továbbra is ugyanazon a helyen, amely azonnal javítja a tömörítés:

(Itt és a további tömörítés ShrinkSafe, szükségtelenül, elhagyja a sortöréseket.
Eredmények YUI - sőt, ugyanaz)

Általános szabály, hogy a felületek számos utalást a dokumentumot. és mindegyik hosszú, így ez a megközelítés csökkenti a kódot közvetlenül reklámok 10-20% -kal.

A függvények által bejelentett var. nem működik:

Szükséges, ShrinkSafe, amely tömöríti csak a meghatározást (1). Mert YUI - különbség nélkül, hogyan állapítsa meg egy funkciót, tömöríteni, és így és így.

Összesen gyári sémaobjektumok:

A szépség az, hogy magán a változók a helyi, és ezért lehet tömöríteni. Ezen túlmenően, az eltávolított felesleges e.

Maximálisan kihasználja a lokális változók, sőt, javítja a minimalizációs. És néhány megközelítések ebben a cikkben - csak illusztráció.

  • nyomtatható változat