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.

Napišite komentar

Najnovije iz rubrike