- Samsung Galaxy S25 - végre van kicsi!
- Honor Magic8 Pro - bevált recept kölcsönvett hozzávalókkal
- MIUI / HyperOS topik
- Így lehet kiszúrni, ha kamu AirPods fülest akarnak eladni neked
- Android alkalmazások - szoftver kibeszélő topik
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- Samsung Galaxy S26 Ultra - fontossági sorrend
- Android szakmai topik
- Samsung Galaxy Watch8 és Watch8 Classic – lelkes hiperaktivitás
- Xiaomi 17 Ultra - jó az optikája
-
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 Felhasználók OFF topicja
- PROHARDVER! feedback: bugok, problémák, ötletek
- Sorozatok
- TCL LCD és LED TV-k
- Kínai és egyéb olcsó órák topikja
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Víz- gáz- és fűtésszerelés
- AMD Navi Radeon™ RX 9xxx sorozat
- Suzuki topik
- sziku69: Fűzzük össze a szavakat :)
- További aktív témák...
- Érintős ! ThinkPad X1 Carbon Gen 11 - 14"WUXGA IPS 100% sRGB, i5-1335U 16 / 256 NVMe +SZLA +GARANCIA
- Telefotó objektív mobiltelefonhoz (G-Series - Super Telephoto 240mm)
- Tekkusai Singularity Founder's Edition glass Mousepad
- Magyar vilbil ! HP EliteBook 640 G9 14"iPS FHD, Iris Xe, i5-1235U, 16 / 256 NVMe SSD +SZLA +GARANCIA
- Intel Core i5 13400F + hűtő
- Xiaomi Redmi Note 12S 256GB, Kártyafüggetlen, 1 Év Garanciával
- Samsung Galaxy A23 5G 128GB, Kártyafüggetlen, 1 Év Garanciával
- Apple iPhone 13 Pro Max 128GB, Kártyafüggetlen, 1 Év Garanciával
- PlayStation Okosító Blu-ray lemezek - PS4 GoldHEN Loader / BD-JB Lapse és PS5 Auto Jailbreak AIO
- REFURBISHED - DELL Thunderbolt Dock WD19TB (210-ARJD), WD19TBS (210-AZBV)
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

