- Samsung Galaxy S22 és S22+ - a kis vagány meg a bátyja
- A Motorolának is a Bose hangol
- Milyen hagyományos (nem okos-) telefont vegyek?
- iPhone topik
- Samsung Galaxy S23 és S23+ - ami belül van, az számít igazán
- Samsung Galaxy A52s 5G - jó S-tehetség
- Újabb hét, újabb Galaxy S26 képek
- Honor Magic5 Pro - kamerák bűvöletében
- OnePlus 15 - van plusz energia
- Google: minden androidos telefonra jön az AirDrop-kompatibilis Quick Share
-
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
- Samsung Galaxy S22 és S22+ - a kis vagány meg a bátyja
- Gitáros topic
- A Motorolának is a Bose hangol
- Milyen videókártyát?
- Miért tűntek el a buta tévék?
- Hardcore café
- Horgász topik
- Milyen hagyományos (nem okos-) telefont vegyek?
- Rezsicsökkentés, spórolás (fűtés, szigetelés, stb.)
- Arc Raiders
- További aktív témák...
- HP OmniBook 7 Flip 2-in-1 Next Gen AI Laptop, BONTATLAN, VADIÚJ!
- Gyári Garanciás Samsungtól vásárolt 12GB/512GB Titanium Yellow S24 Ultra
- Dobozos ÚJ ASUS TUF 17 Ryzen 7 7735HS 16 GB DDR5 512 GB SSD RTX 4060 (8 GB) Garancia Magyar bill
- ZBook Fury 15 G7 15.6" FHD IPS i7-10850H T2000 32GB 512GB NVMe IR kam gar
- Szuper áron eladó Lenovo ThinkPad T14 Gen 1 /Ryzen 7 PRO 4750U/16GB/512 SSD/FHD/IPS Érintőkijelző
- HIBÁTLAN iPhone 16 128GB Black-1 ÉV GARANCIA - Kártyafüggetlen, MS4423, 100% Akksi
- GYÖNYÖRŰ iPhone 13 mini 128GB Green -1 ÉV GARANCIA - Kártyafüggetlen, MS3338
- LENOVO ThinkPad T470,14",FHD,i5-7200U,8GB DDR4,128GB SSD,WIN11, ÚJ akkumulátor, LTE KÁRTYA
- Apple iPhone 14 Pro 512GB, Kártyafüggetlen, 1 Év Garanciàval
- Xiaomi Redmi 13 128GB, Kártyafüggetlen, 1 Év Garanciával
Állásajánlatok
Cég: Central PC számítógép és laptop szerviz - Pécs
Város: Pécs
Cég: Laptopműhely Bt.
Város: Budapest


