Hirdetés
- Milyen okostelefont vegyek?
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- One mobilszolgáltatások
- Motorola Edge 50 Neo - az egyensúly gyengesége
- Apple iPhone 17 - alap
- CES 2026: Nyomás utána! Konkurenciát kapott a Watch D2
- iPhone topik
- Xiaomi 14T - nem baj, hogy nem Pro
- Xiaomi 15T - reakció nélkül nincs egyensúly
- Motorola Moto G84 - színes egyéniség
-
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
- BESZÁMÍTÁS! ASUS TUF Z790 i9 14900K 32GB DDR5 1TB SSD RX 9070 XT 16GB ZALMAN Z10 PLUS Seasonic 750W
- BESZÁMÍTÁS! GIGABYTE B650 R7 7800X3D 32GB DDR5 1TB SSD RTX 5070 Ti 16GB be quiet! Pure Base 501 850W
- BESZÁMÍTÁS! Gigabyte B760M i5 14600K 16GB DDR4 512GB SSD RX 9060 XT 16GB Asus A31 PLUS TG ARGB 650W
- BESZÁMÍTÁS! ASRock B550 R7 3700X 32GB DDR4 512GB SSD AORUS RTX 3070Ti 8GB LIAN LI 216 RX ASUS 750W
- HP 250 G7 Notebook, 15,6" HD, Celeron N4020 CPU, 4GB DDR4, 128GB M.2 SSD, W11, Számla, 1 év garanc
- Lenovo X13 Yoga 2in1 Thinkpad WUXGA IPS Touch i5.1135G7 16GB 256GB Intel Iris XE Win11 Pro Garancia
- Új, Aktiválatlan iPhone 16 (128 GB) (rendelhető)
- RAKTÁRKISÖPRÉS! Eladó projektorok!
- Apple iPhone 16 Plus 128GB, Kártyafüggetlen, 1 Év Garanciával
- Apple iPhone 14 128GB,Átlagos,Adatkabel,12 hónap garanciával
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Laptopszaki Kft.
Város: Budapest


