- Motorola Moto Watch – még nem teljes a kör
- iPhone topik
- Honor Magic6 Pro - kör közepén számok
- Alumíniumba öltözött a Nothing Phone (4a) Pro
- Google Pixel 10a – évismétlés
- Hivatalos a Poco X8 Pro Max gigantikus akkukapacitása
- Samsung Galaxy A56 - megbízható középszerűség
- Európába is befut a Red Magic 11 Air Trace Edition
- MWC 2026: Bajnoki címre pályázik a Xiaomi Watch 5
- Huawei P30 Pro - teletalálat
-
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
- Tovább tarthat a memóriakrízis, mint gondolnánk
- Napelem
- Az Intel szerint mindenkit érint, illetve érinteni fog a CPU-hiány
- Allegro vélemények - tapasztalatok
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- One otthoni szolgáltatások (TV, internet, telefon)
- Motorola Moto Watch – még nem teljes a kör
- iPhone topik
- Milyen program, ami...?
- PlayStation 5
- További aktív témák...
- BESZÁMÍTÁS! HP Elitedesk 800 G2 SFF brand - i7 6700 16GB DDR4 250GB SSD 500GB HDD GTX 1050Ti 4GB W10
- BESZÁMÍTÁS! Lenovo Legion Pro 5 WQXGA GAMER notebook - i9 14900HX 32GB DDR5 1TB SSD RTX 5070 8GB
- LG 32G810SA-W - 32" IPS Smart - UHD 4K - 144Hz 1ms - NVIDIA G-Sync - FreeSync Premium - HDR 400
- BESZÁMÍTÁS! Apple MacBook Air 13 M1 8GB RAM 256GB SSD notebook garanciával hibátlan működéssel
- Beszámítás! LG UltraGear 27GR93U-B 27 144Hz UHD IPS 1ms monitor garanciával hibátlan működéssel
- Dell D6000 univerzális dokkoló USB-C/ USB-A, DisplayLink & Dell WD15 (K17A) USB-C + 130-180W töltő
- szinteÚJ, dobozos Dell Pro 14 Core Ultra 7 255U 32GB DDR5 1TB AI PC FHD+ 1 év garancia
- HIBÁTLAN iPhone 13 Pro 128GB Gold-1 ÉV GARANCIA - Kártyafüggetlen, MS4432, 100% Akksi
- Apple iPhone 11 Pro 64GB, Kártyafüggetlen, 1 Év Garanciával
- LG 34GS95UE - 34" Ívelt OLED / QHD 2K / 240Hz & 0.03ms / 1300 Nits / NVIDIA G-Sync / AMD FreeSync
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

