Hirdetés
- iPhone topik
- Poco F8 Ultra – forrónaci
- Megtartotta Európában a 7500 mAh-t az Oppo
- Yettel topik
- A piac legerősebb kameráját ígéri a Xiaomi 17 Ultra
- Fotók, videók mobillal
- Itthon is elérhető a OnePlus 11 és a Buds Pro 2
- Samsung Galaxy A54 - türelemjáték
- Xiaomi 15 - kicsi telefon nagy energiával
- Samsung Galaxy Watch7 - kötelező kör
-
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
- iPhone topik
- Számtech boltosok memoárjai, azaz amikor kiborulunk...
- Milyen TV-t vegyek?
- HBO Max
- PlayStation 5
- alza vélemények - tapasztalatok
- Poco F8 Ultra – forrónaci
- Győr és környéke adok-veszek-beszélgetek
- Megtartotta Európában a 7500 mAh-t az Oppo
- Elektromos autók - motorok
- További aktív témák...
- RYZEN 7 5800X + hűtött VRM-es A520 alaplap + 32GB hűtőbordás DDR4 kit! GAR/SZÁMLA (a Te nevedre)!
- ASUS Maximus IV Extreme P67
- Kraftwerk - The Catalogue - 2009 - CD díszdoboz
- 4X8gb ADATA DDR4-2666mhz memoria csak egyben!
- HP Omen - 15,6" FullHD IPS 144Hz, Ryzen 7-5800H, 32GB, 1Tb SSD, nVidia GeForce RTX 3070 8GB
- Lenovo L13 Core I3-10110U / 8GB DDR4 zsanér törött LAPTOP 2
- HIBÁTLAN iPhone 13 mini 128GB Pink -1 ÉV GARANCIA -Kártyafüggetlen, MS3844
- 13-14" Új és használt laptopok , üzletitől a gamerig , kedvező áron. Garanciával !
- BESZÁMÍTÁS! MSI Bravo 15 C7VF Gamer notebook - R7 7735HS 24GB DDR5 2TB SSD RTX 4060 8GB WIN11
- Telefon felvásárlás!! Honor 400 Lite, Honor 400, Honor 400 Pro
Állásajánlatok
Cég: Laptopszaki Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest


