- iPhone topik
- Hamarosan robottelefon figyelheti minden mozdulatod
- Poco F7 – bajnokesélyes
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- Milyen hagyományos (nem okos-) telefont vegyek?
- „Új mérce az Android világában” – Kezünkben a Vivo X300 és X300 Pro
- Ha Kínában repülsz, és nem ilyen a hordozható töltőd, elveszik a reptéren!
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- One mobilszolgáltatások
- Samsung Galaxy Z Fold7 - ezt vártuk, de…
-
Mobilarena
JavaScript != Java (A JavaScript nem összekeverendő a Javával, két különböző programozási nyelvről van szó!)
Új hozzászólás Aktív témák
-
Sk8erPeter
nagyúr
válasz
TheProb #5821 üzenetére
Azért, mert így nem írsz felül semmilyen másik, szintén onloadra bekövetkező eseménykezelőt, olyat, amit pl. akár egy másik fájlban határoztál meg (Te vagy akár egy library), hiszen így HOZZÁADSZ egy eseménykezelőt, mint az a nevében benne is van (addEventListener), nem pedig felülvágod az onloadot egy egyenlőségjellel, hogy az lesz az eseménykezelő, és kész, semmi más.
Vegyünk egy nagyon egyszerű példát:
A HTML-struktúrában ez a két fájl van behúzva:...
<script src="testjs-1.js"></script>
<script src="testjs-2.js"></script>
...testjs-1.js tartalma:
window.onload = function() {
alert("asdasd");
}testjs-2.js tartalma:
window.onload = function() {
alert("blabla");
}Ha mindkét fájlban meghatározott eseménykezelő fontos lenne, hogy lefusson a load esemény hatására, hát akkor szomorúan fogjuk tapasztalni, hogy bizony ez nem történik meg, csak a "blabla" felirat fog felpattanni, pedig elvártuk volna, hogy előtte az "asdasd" szöveg is vágódjon a pofánkba.
Most ha átírod így:
testjs-1.js tartalma:
window.addEventListener("load", function(event) {
alert("asdasd");
}, false);testjs-2.js tartalma:
window.addEventListener("load", function(event) {
alert("blabla");
}, false);Akkor innentől kezdve először felugrik az "asdasd", majd a "blabla" feliratú ablak. Pont ezt vártuk el, mindkét eseménykezelő lefutott.
A window.removeEventListener("load", load, false); sor pedig a jsFiddle-re felrakott példában azt jelenti, hogy eltávolítjuk az eseménykezelőt, hiszen ha már egyszer lekezeltük a betöltődés eseményét, akkor teljesen felesleges, hogy rá legyen aggatva egy eseménykezelő, mivel az esemény már bekövetkezett, nem fog többször bekövetkezni.
Még régebben az MDN oldalán láttam, aztán rászoktam a használatára, elméletileg így kevesebb erőforrást eszik a script. Általában egyébként elvileg elég jelentéktelen lehet az ebből adódó különbség, így egy weboldal esetében igazából nem biztos, hogy érdemes vele foglalkozni, hogy ez a sor szerepeljen egyáltalán a kódban, de egyébként alapvetően nem egészséges, ha feleslegesen sok listenert aggatunk fel ide-oda az alkalmazásunkban, ezért spórolok vele, hiszen minden listener azért kér némi erőforrást - így pl. egy böngésző esetén ha sok-sok bővítmény van telepítve, és mindegyik felaggatja a kis listenerjét, majd ott is marad, akkor az már elméletileg számíthat.A többi remélem érthető, kérdezz, ha nem tiszta.
Új hozzászólás Aktív témák
- !Akció! Klipsch R-120SW Sub / Mélynyomó
- BMW gyári alufelni, téli gumival
- iPad Air 5th gen (2022) 11" Blue M1 Cellular, ESR Rebound Hybrid Case 360 tok, 5in1 Type-C Hub
- AKCIÓ!!! Új SONOS ACE - Dolby Atmos vezetéknélküli fejhallgató, dupla BT, Sonos rendszer nélkül is m
- ÚJ iPhone 16 Pro Max 256GB Black Titanium (1 év Apple Care+)
- Telefon felváráslás!! iPhone 15/iPhone 15 Plus/iPhone 15 Pro/iPhone 15 Pro Max
- ÁRGARANCIA!Épített KomPhone i5 14400F 32/64GB DDR5 RTX 5060 Ti 8GB GAMER PC termékbeszámítással
- Microsoft Surface Laptop 3 13.5" i5-1035G7 8GB 256GB 1 év garancia
- HIBÁTLAN iPhone 12 Pro Max 128GB Blue -1 ÉV GARANCIA - Kártyafüggetlen, MS3670 100% Akkumulátor
- Corsair T3 RUSH gamer, irodai szék
Állásajánlatok
Cég: NetGo.hu Kft.
Város: Gödöllő
Cég: Promenade Publishing House Kft.
Város: Budapest