Körülbelül 15 évvel ezelőtt egy olyan cégnél dolgoztam, ahol utazási irodák, repülőtéri dolgozók és légitársaságok számára készítettünk alkalmazásokat. Kiépítettük saját házon belüli keretrendszerünket is a felhasználói felület összetevőihez és az egyoldalas alkalmazások képességeihez. Mindenhez voltak összetevőink: mezők, gombok, tabulátorok, tartományok, adattáblák, menük, dátumválasztók, kijelölések és többszörös kijelölések. Még div komponensünk is volt. A div komponensünk egyébként remek volt, lehetővé tette, hogy minden böngészőben lekerekített sarkokat csináljunk, ami akkoriban, akár hiszi, akár nem, nem volt egyszerű dolog.

Munkánkra történelmünk egy olyan pontján került sor, amikor a JS-t, az Ajaxot és a dinamikus HTML-t olyan forradalomnak tekintették, amely a jövőbe vitt minket. Hirtelen dinamikusan frissíthettünk egy oldalt, adatokat kaphattunk a szerverről, és nem kellett más oldalakra navigálni, ami lassúnak tűnt, és egy nagy fehér téglalapot villantott a képernyőn a két oldal között. Volt egy kifejezés, amelyet Jeff Atwood (a StackOverflow alapítója) tett népszerűvé, és ez így hangzott: „Minden alkalmazás, amely JavaScriptben írható, végül JavaScriptben lesz megírva.” – Jeff Atwood

Számunkra akkoriban úgy éreztük, hogy merjük létrehozni ezeket az alkalmazásokat. Egy általános jóváhagyásnak tűnt, hogy mindent a JS-sel csináljak. Tehát mindent a JS-sel csináltunk, és nem igazán fordítottunk időt arra, hogy a dolgok más módjait kutassuk. Nem igazán éreztük a késztetést arra, hogy megfelelően megtanuljuk, mire képes a HTML és a CSS. Nem igazán fogtuk fel a webet egy fejlődő alkalmazásplatformnak a maga teljességében. Leginkább úgy láttuk, hogy meg kell oldanunk, különösen ami a böngésző támogatását illeti. Csupán több JS-t dobhatnánk rá, hogy elintézzük a dolgokat. Segített volna nekem, ha időt szánnék arra, hogy többet megtudjak az internet működéséről és arról, hogy mi áll rendelkezésre a platformon? Persze, valószínűleg le tudtam volna borotválni egy csomó kódot, amelyre valójában nem volt szükség. De akkoriban talán nem annyira. Látod, a böngészők közötti különbségek akkoriban elég jelentősek voltak. Ekkor még az Internet Explorer volt a domináns böngésző, a Firefox pedig a második helyen állt, de a gyors népszerűségnek örvendő Chrome miatt veszíteni kezdett a piaci részesedéséből. Bár a Chrome és a Firefox elég jól megállapodott a webes szabványokban, a környezet, amelyben az alkalmazásaink futottak, azt jelentette, hogy sokáig támogatnunk kellett az IE6-ot. Még akkor is, amikor engedélyeztük az IE8 támogatását, még mindig sok különbséggel kellett megküzdenünk a böngészők között. Nem csak ez, de a korabeli web egyszerűen nem tartalmazott ennyi képességet közvetlenül a platformba.

Gyorsan előre a mai napra. A dolgok óriásit változtak. Nemcsak, hogy több ilyen képességgel rendelkezünk, mint valaha, de az elérhetővé válás üteme is megnőtt. Hadd tegyem fel ismét a kérdést: Segítene-e ma, ha rászánná az időt arra, hogy többet megtudjon a web működéséről és a platformon elérhető dolgokról? Abszolút igen. Ha ma megtanulja megérteni és használni a webes platformot, óriási előnyhöz jut a többi fejlesztővel szemben. Függetlenül attól, hogy a teljesítményen, a hozzáférhetőségen, a reakciókészségen dolgozik – mindezen együtt, vagy csak a felhasználói felületi funkciók szállításán –, ha felelős mérnökként szeretné ezt tenni, a rendelkezésére álló eszközök ismerete segít gyorsabban és jobban elérni céljait. Néhány dolog, amihez talán már nincs szüksége könyvtárra Ha tudjuk, hogy ma mit támogatnak a böngészők, a kérdés tehát az: mit hagyhatunk el? Szükségünk van div komponensre a lekerekített sarkok elkészítéséhez 2025-ben? Természetesen nem. A border-radius tulajdonságot az összes jelenleg használt böngésző támogatja több mint 15 éve. És hamarosan jön a sarokforma is, a még szebb sarkokhoz. Vessünk egy pillantást a viszonylag friss szolgáltatásokra, amelyek már minden nagyobb böngészőben elérhetők, és amelyek segítségével helyettesítheti a kódbázisában meglévő függőségeket. A lényeg nem az, hogy azonnal feladja az összes szeretett könyvtárát, és átírja a kódbázist. Ami minden mást illeti, először figyelembe kell vennie a böngésző támogatását, és a projektre jellemző egyéb tényezők alapján kell döntenie. A következő szolgáltatások a három fő böngészőmotorban (Chromium, WebKit és Gecko) vannak megvalósítva, de előfordulhat, hogy eltérő böngészőtámogatási követelmények vonatkoznak, amelyek megakadályozzák, hogy azonnal használja őket. Még mindig itt az ideje, hogy megismerjük ezeket a funkciókat, és esetleg tervezzük, hogy valamikor használni is fogjuk őket. Felbukkanó ablakok és párbeszédek A Popover API, a

HTML elem és a ::backdrop pszeudoelem segíthet megszabadulni az előugró ablakoktól való függőségtől,eszköztippek és párbeszédablakkönyvtárak, például a Floating UI, Tippy.js, Tether vagy React Tooltip. A kisegítő lehetőségeket és a fókuszkezelést már a dobozból kezelik, CSS használatával nagymértékben testreszabhatók, és könnyen animálhatók. Harmonikák A
elem, az egymást kizáró elemek névattribútuma és a ::details-content pszeudoelem megszünteti a harmonikakomponensek, például a Bootstrap Accordion vagy a React Accordion komponensek szükségességét. A platform használata itt azt jelenti, hogy a HTML/CSS-t ismerő emberek könnyebben megértik a kódot anélkül, hogy először meg kellene tanulniuk egy adott könyvtár használatát. Ez azt is jelenti, hogy immunis vagy a könyvtár változásaira vagy a könyvtár megszűnésére. És természetesen ez azt jelenti, hogy kevesebb kódot kell letölteni és futtatni. Az egymást kölcsönösen kizáró részleteknek nincs szükség JS-re a megnyitáshoz, bezáráshoz vagy animációhoz. CSS szintaxis A kaszkádrétegek a szervezettebb CSS-kódbázishoz, a CSS-beágyazáshoz, a kompaktabb CSS-hez, új színfüggvényekhez, relatív színekhez és színkeveréshez, az új matematikai függvények, mint az abs(), a sign(), a pow() és mások segítenek csökkenteni a CSS-előprocesszoroktól, segédprogramkönyvtáraktól, például a Bootstrap-től és a Tailwind-től, vagy akár a runtime CSSbraries-től való függőséget. A játékváltó :has(), amely régóta az egyik legkeresettebb szolgáltatás, megszünteti a bonyolultabb JS-alapú megoldások szükségességét. JS Utilities A modern Array metódusok, mint például a findLast() vagy az at(), valamint a Set metódusok, mint a differencia(), intersection(), union() és mások, csökkenthetik az olyan könyvtáraktól való függőséget, mint a Lodash. Tárolólekérdezések A tárolólekérdezések arra késztetik a felhasználói felület összetevőit, hogy a nézetablak méretétől eltérő dolgokra reagáljanak, és ezáltal jobban felhasználhatók legyenek a különböző környezetekben. Ehhez már nem kell JS-heavy UI könyvtárat használni, és nem kell polifill-t sem. Elrendezés A grid, a subgrid, a flexbox vagy a multi-column már régóta létezik, de a State of CSS felmérések eredményeit nézve egyértelmű, hogy a fejlesztők általában nagyon óvatosak az új dolgok bevezetésekor, és nagyon sokáig várnak, mire ezt teszik. Ezek a szolgáltatások már régóta az alapvonalak, és segítségével megszabadulhat az olyan dolgoktól való függőségektől, mint a Bootstrap grid rendszere, a Foundation Framework flexbox segédprogramjai, a Bulma fix grid, a Materialize grid vagy a Tailwind oszlopok. Nem azt mondom, hogy fel kell dobnod a keretedet. A csapata okkal fogadta el, és az eltávolítása nagy projekt lehet. De ha megnézzük, mit tud nyújtani a webes platform harmadik féltől származó csomagolóanyag nélkül, az számos előnnyel jár. Dolgok, amelyekre a közeljövőben már nincs szüksége Most pedig vessünk egy gyors pillantást néhány olyan dologra, amelyekhez a közeljövőben nem lesz szüksége könyvtárra. Vagyis az alábbi dolgok még nem állnak készen a tömeges átvételre, de ezek ismerete és a lehetséges későbbi felhasználás megtervezése hasznos lehet. Horgony elhelyezése A CSS horgonypozícionálás kezeli a felugró ablakok és eszköztippek más elemekhez viszonyított pozicionálását, és gondoskodik azok láthatóságáról, még az oldal mozgatása, görgetése vagy átméretezése során is. Ez nagyszerűen kiegészíti a korábban említett Popover API-t, amely még könnyebbé teszi a nagyobb teljesítményigényes JS-megoldásokról való átállást. Navigációs API A Navigation API használható a navigáció kezelésére egyoldalas alkalmazásokban, és nagyszerű kiegészítője lehet a React Router, a Next.js útválasztási vagy az Angular routing feladatoknak, vagy akár helyettesítheti azokat. Átmenetek API megtekintése A View Transitions API animálhat az oldal különböző állapotai között. Egyoldalas alkalmazásoknál ez nagyon egyszerűvé teszi az állapotok közötti zökkenőmentes átmenetet, és segíthet megszabadulni az olyan animációs könyvtáraktól, mint az Anime.js, GSAP vagy Motion.dev. Még jobb, hogy az API többoldalas alkalmazásokkal is használható. Emlékszel korábban, amikor azt mondtam, hogy azért építettünk egyoldalas alkalmazásokat a cégnél, ahol 15 évvel ezelőtt dolgoztam, hogy elkerüljük az oldalújratöltések fehér villanását navigálás közben? Ha ez az API akkoriban elérhető lett volna, gyönyörű oldalátmeneti effektusokat tudtunk volna elérni egyoldalas keretrendszer és a teljes alkalmazás hatalmas kezdeti letöltése nélkül. Scroll-vezérelt animációk A görgetéssel vezérelt animációk a felhasználó görgetési pozíciójában futnak, nem pedig az idő múlásával, így nagyszerű megoldást jelentenek a történetmeséléshez és a termékbemutatókhoz. Vannak, akik túlzásba vitték, de ha jól használják, ez egy nagyon hatékony tervezési eszköz lehet, és segíthet megszabadulni az olyan könyvtáraktól, mint például: ScrollReveal, GSAP Scroll vagyWOW.js. Testreszabható választások A testreszabható kijelölés egy normál

No spam. Join 138,000+ creators. Unsubscribe anytime.

Create Your Free Bio Page

Join 138,000+ creators on Seemless.

Get Started Free