U trendu

JavaScript – Optimizacija koda keÅ¡iranjem objekata

JavaScript aplikacije vremenom postaju sve veće i komplikovanije, tako da raste potreba za efikasnijim skriptovima. Ako se vratimo na početke JavaScript-a, kada smo uz pomoć skriptova samo menjali boju pozadine, ili vrÅ¡ili neke jednostavnije validacije formulara, tada zbog malog koda efikasnost skriptova nije bila u pitanju. Sada kada imamo gotovo cele aplikacije na jednoj .html stranici, efikasnost programskog koda nije viÅ¡e neÅ¡to Å¡to moÅŸemo preskočiti. Zato ćemo vam u ovom prilogu pokazati jedan od momenata za povećanje efikasnosti vaÅ¡ih skriptova.

Radi se zapravo o tzv. „keÅ¡iranju objekata“, kojim dramatično moÅŸemo povećati brzinu izvrÅ¡avanja programa. Često vaÅ¡i skriptovi viÅ¡estruko pristupaju određenim objektima, kao u sledećem primeru:


<script language="JavaScript">
for (i=0; i<document.images.length; i++)
document.images[i].src = "blank.gif"
</script>

U gornjem kodu, objektu „document.images“ se viÅ¡estruko pristupa. Ovaj kod je totalno neefikasan, poÅ¡to browser mora dinamički da dva puta pristupi objektu tokom jednog ponavljanja petlje (prvi put pri proveri „if i<document.images", i drugi put, kada menja osobinu slike "src"). Ako, na primer, na stranici imamo 10 ovakvih slika, onda imamo 20 puta pozivanje objekta "document.images". Veliki broj poziva moÅŸe ponekad i da obori browser.

KeÅ¡iranje objekata znači da objekte kojima često pristupamo, smestimo unutar korisnički definisane varijable, i da onda tu varijablu koristimo umesto viÅ¡estrukog pozivanja objekta. PoboljÅ¡anje performansi moÅŸe biti značajno. U sledećim redovima ćemo navesti modifikovanu verziju prethodnog koda, koristeći keÅ¡iranje objekta:


<script language="JavaScript">
var slike = document.images

for (i=0; i<slike.length; i++)
slike[i].src="blank.gif"
</script>


Ovim kodom, ne samo da je smanjen broj referenciranja objekata za pola, nego i svaki put kada pozivamo objekat, browser više ne mora ide na document.images, već samo treba da pristupi formiranom nizu.

Pratite Krstaricu i preko mobilne aplikacije za Android i iPhone.