- iPhone topik
- MWC 2026: Bajnoki címre pályázik a Xiaomi Watch 5
- Telekom mobilszolgáltatások
- Milyen okostelefont vegyek?
- Honor Magic8 Pro - bevált recept kölcsönvett hozzávalókkal
- Nagy aksival és erős hardverrel megjött Magyarországra a Poco X8 Pro és Pro Max
- One mobilszolgáltatások
- Huawei Watch GT 6 és GT 6 Pro duplateszt
- Motorola Moto G06 Power – nagyfater új zakót vett
- Xiaomi 15T Pro - a téma nincs lezárva
-
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
Alapvetően annyi a baj azzal, hogy JavaScripttel állítgatod a stílusát egy DOM-elemnek, hogy így keversz két különböző területet: alapvetően a CSS feladata meghatározni az oldal megjelenését (benne van a nevében, hogy stíluslapokat készítesz), JavaScripttel pedig inkább a viselkedését illik manipulálni az oldalnak. Nyilván vannak kivételek, de ez pont olyan példa, amire érvényes. Persze nem érdemes túlizgulni, ez már csak szépítgetés, szemantikai okoskodás.
Most amúgy kíváncsiságból rákerestem a dologra, és találtam egy cikket, ami vitatja az osztályok ráhelyezésének vagy levételének elvét, és inkább a data-attribútumok használatát javasolja:
http://toddmotto.com/stop-toggling-classes-with-js-use-behaviour-driven-dom-manipulation-with-data-states/
Elfogadható, amit ír, de túlzásba esik az osztályok használatának elvetésével. De egyébként nem rossz a data-attribútumok használata sem."Lenne esetleg értelme minden sort egy ID-val ellátni, a szűrést pedig client-side/local storage-ban elvégezni majd az eredmény alapján állítgatni a displayt?"
Semmi értelme nem lenne ennek a megoldásnak. A szűrést így is az összes adaton kellene elvégezni, itt pedig semmiféle előnyt nem jelentene az, hogy csavarintasz és bonyolítasz egyet a dolgon.
Gondolj bele, a mostani megoldásod egy document.getElementsByClassName hívás, ami visszatér egy HTMLCollectionnel, amin végigmész egy for ciklussal, és megnézed, benne van-e az adott sorban valahol a keresett elem, aztán kész vagy. Ez is nagyon gyorsan fog végezni, még ha többezer elemed lenne, akkor se lenne vészes, a DOM-manipulálás már más kérdés. Ha viszont átállnál arra, hogy id-k szerint kérdezgess le, akkor értelemszerűen az id-kat is nyilván kellene tartani egy másik tömbben (mert különben honnan tudod, hogy miket kellene lekérdezni? Ha meg nem tudod a konkrét id-kat, akkor vissza kell térned az eredeti, amúgy ezerszer értelmesebb megoldásra), és azon a tömbön kellene végigmenned, lekérdezned id szerint az elemet, majd pont ugyanezt a keresést végrehajtani. Nem nyertél semmit, sőt, még overheadet is tettél a dologba (plusz egy-egy lekérdezés minden elemre az id szerint is, miután megkaptuk a tömbből az elemet).
Azt meg nem tudom, hogy érted, hogy "client-side"-ban elvégezni a keresést, most is kliensoldalon keresel.
localStorage-be átpakolni a keresést meg megint semmi értelme, mit keresne ott, miért kellene perzisztens módon tárolnia a kliensnek az összes adatot. Nem beszélve arról, hogy valószínűleg az oldaladon változni fognak ezek a megjelenített és szűrhető adatok, így a localStorage-et mindig szinkronban kellene tartani az újabb adatokkal.
Új hozzászólás Aktív témák
- Eredeti játékok OFF topik
- Kodi és kiegészítői magyar nyelvű online tartalmakhoz (Linux, Windows)
- Linux kezdőknek
- Kész rémálom lesz Linuxot használni jövőre az USA egyes államaiban
- OLED TV topic
- PlayStation 5
- Robotporszívók
- iPhone topik
- MWC 2026: Bajnoki címre pályázik a Xiaomi Watch 5
- Amlogic S905, S912 processzoros készülékek
- További aktív témák...
- ASUS RTX 5070 12GB GDDR7 PRIME OC - Új, 2 év garancia - Eladó!
- Erős, !GARANCIÁLIS! MSI Crosshair 16 HX gamer laptop! -i9 14900HX, RTX 4060 8gb (140w), 32gb DDR5
- !BONTATLAN! Ghost of Yotei collector s edition!
- Lexar NM790 2TB M.2 NVME PCI-E 4.0 x4 - 7400-6500 MBs - 100/100 - Garancia
- BenQ W2700 4K HDR Home Cinema Projector - 100% DCI-P3
- GeForce RTX 2060 (OEM HP) Garanciával
- MiniITX 5900X / RTX 3080 / B550i / 32GB 3600MHz / 1TB NVMe / 750w GOLD! BeszámítOK
- Apple iPhone 13 Pro 128GB,Újszerű,Adatkabel,12 hónap garanciával
- AKCIÓ! Apple MacBook Air 15 M4 32GB RAM 1TB SSD notebook garanciával hibátlan működéssel
- AKCÓ! HTC VIVE Pro 2 virtuális valóság szemüveg garanciával hibátlan működéssel
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest


