eventListener life cycle
googlam i ne mogu naci nista smisleno...
brise li browser sve eventListenere koji su zakaceni na DOM elemente trenutkom kada odemo sa konkretne stranice ili ih je na unload potrebno rucno maknut? moze li netko ukratko, kako radi taj mehanizam? |
Ne razumem baš. Laganim testom ...
Kôd:
window.addEventListener ('load', function () {alert ('\'elo wrld');}, false); Čak i da browser ne briše listenere, oni bi ostali da vise negde u memoriji jer ne postoje više objekti za koje bejahu kačeni. Ako je u pitanju baš frka do memorije, onda ne znam... |
da, mozda sam bio nejasan...
pitanje je vezano uz memoriju, naravno... |
Javi ako naiđeš na nešto.
Vidim da je praksa - 'memorija je sve jeftinija, ko će još da se zamara i da pravi Garbage Collector' - bruka je koliko recimo firefox odlomi memorije, to je ipak 'samo' browser. |
IE ima problem sa memory leak kada se radi sa listenerima, tako da je veoma pametno obrisati sve listenere pre odlaska sa stranice. FF navodno nema ovih problema, mada neskodi ovu praksu preneti i na FF.
Navescu ti primer kako se ovo resava pomocu prototype api: Event.observe(window, "unload", Event.unloadCache, false); |
evo dva izvora koja mi se cine ok:
http://www-128.ibm.com/developerwork...ry/wa-memleak/ http://msdn.microsoft.com/library/de...k_patterns.asp poanta je da treba pazit na memory leaks, dakle na situacije u kojima reference count garbage colletion engine (koji kupi objekte sa 0 referenci) ne moze pokupit objekte (situacija kad 2 objekta referenciraju jedan drugi, a nitko na njih i oni na nikog drugog). u tom slucaju, gc ne moze oslobodit memoriju. kako se cini, eventListeneri (pozvani npr. sa closure funkcijama) samo su jedan od slucajeva memory leaka |
Upravo tako, javascript ima na izobilje nacina da izazove memory leaks.
Izmedju ostalog zato je pametno koristiti neki od 3, po meni, vodeca frameworka (jquery, moo i prototype). Jako je tesko pratiti i imati na umu sve potencijalne probleme koji se mogu napraviti (u nedostatku boljeg termina) "ne razumnim" pisanjem js koda. Sva tri frameworka sa sobom nose mnogo nacina da se ovakvi problemi izbegnu, kao i detaljnu dokumentaciju u kojoj se mogu naci i upozorenja ovog tipa. |
Vreme je GMT +2. Trenutno vreme je 19:59. |
Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.