A Jquery-s ajaxot vagy a sima javascripteset érdemes használni?
Érvek és ellenérvek a JQuery oldaláról nézve:
Előny: Minden böngészőben ugyanúgy kell megírni az ajax hívást, nem kell foglalkoznod azzal, hogy most melyik böngészőben pontosan hogyan is implementáltak dolgokat. A JQueryben ezt egyszer szépen leprogramozták, ha volt benne hiba, azt már javították, stb… Mindehhez ad egy szimpatikusabb eseménykezelési lehetőséget, hibakezelést, stb…
Hátrány: A JQuery nem csak az ajax hívásokat tartalmazza, hanem sok egyéb dolgot is, egy komplett függvénykönyvtár. Ergo ha csak arra kell, hogy ajax hívásokat csinálj vele, akkor kicsit ágyúval verébre. Egy sima ajax hívás miatt behúzni egy 100 kB-os függvénykönyvtárat… Oké, belefér persze, csak saját kóddal meg lehetne oldani max. 1 kB-ban is.
De úgy összességében én is inkább hajlanék a JQuery felé. Valószínű, hogy más céllal is előbb-utóbb praktikusabb lenne a használata, készen van, nem kell lefejleszteni vagy nem kell ilyen-olyan kész megoldásokat keresni. 100 kB azért nem a világvége, és ha ezzel 2-3 különböző javascript funkciót egységesebben, átláthatóbban, könnyebben tudsz megvalósítani, akkor miért ne tennéd.
#5 Eléggé régóta fejlesztek egy saját könyvtárat, és az a tapasztalatom hogy natív kóddal is sokkal rövidebben tudok megírni olyan dolgokat, amik hasonló feladatoknál még csa jquery függvényhívásokat jelentik. Nem tudom hogy mi lehet ennek az oka.
Mivel saját összetett rendszert csinálok, ahol az elemek szervesen kapcsolódnak egymáshoz, sokkal jobban együttműködnek a kódjaim, és ha valami hiba van, akkor pontosan tudom hogy hol kell javítani, hol kell beavatkozni. Nyilván ha valaki töviről hegyire ismeri a jqueryt, akkor pont ugyanígy van vele, de ha rászántam volna magam a jquery megtanulásában a-z-ig, időben kb. ugyanitt tartanék, de nem tanultam volna meg baromi sok dolgot a javascriptről.
Kicsit ahhoz tudnám hasonlítani a dolgot, hogy én meg tudom javítani a trabantomat, míg a bmw-s tudja kezelni a fedélzeti számítógépet. :)
Én ezeddig három fázist éltem meg.
Elsőre az ember nem ért még hozzá, van esetleg valamiféle ismerete, amit már összeszedett, de nem akar különösebben belemenni, elmélyedni, csak némi sikerélményt akar, alkotni akar valamit. Ilyenkor jön az, hogy letöltesz egy már megírt scriptet, behúzod, beírod azt a két sort, amit kell, és jóidő. Mondjuk nem akartál különösebben javascriptet tanulni, még a HTML-t tanulod, de nem lenne rossz egy statisztika, vagy egy spoilerként működő div, vagy egy olyan menü, aminél egérfókusz esetén kicserélődik a háttérkép az adott menüelem mögött. Nem tudod hogy működik az, amit beraktál, vagy éppen csak ismerkedsz vele, vagy nem is érdekel, lazán csak összelegózod a dolgot, ha van némi alaptudásod, akkor ez még sikerülni is fog.
Aztán úgy istenigazából megtanulod a javascript nyelv alapjait, esetleg már látod, mennyire tákolmány az, amit eddig csináltál. (Persze ezt tudhattad, csak most már azt is tudod, hogy miért az.) Ekkor mindent a magad erejéből akarsz megcsinálni, sorról-sorra magad megírni mindent. Inkább szánsz rá extra időt, és szépen összeállítasz egy saját függvénykönyvtárat.
Csakhogy ebben a kódban lesznek hibák, hiányosságok. Az idő telik, használgatod is a saját függvénykönyvtáradat, de ugye időt kellene szánni a kód karbantartására, frissítésére, új funkciók implementálására, csak erre valahogy soha nem marad elég idő, kapacitás, kedv. Rájössz, hogy nem is annyira ördögtől való, ha használsz mások által *jól* megírt dolgokat. Minek feltalálni a spanyolviaszt, ha vannak emberek, akik helyetted egy-egy funkcióra ráfeszülve, a probléma mélyére ásva megcsinálják jól azt amire szükséged van, tesztelik mindenféle böngészőn, stb… Én most itt tartok, nem tudom lesz-e következő fázis, de gyanítom nem lesz. Ha valamit jQuery nélkül kell valamilyen okból megcsinálni, megcsinálom, mert van kellő gyakorlatom benne. De ha ez nem szükséges, használom a jQuery-t mindenféle szívbaj nélkül, mert abba azért kényelmesebb és gyorsabb dolgozni.
> a tapasztalatom hogy natív kóddal is sokkal rövidebben tudok megírni olyan dolgokat
Ez érdekes. Pedig nekem pont az tetszik a jQuery-ben, hogy annyira tömör, hogy alig tudom elképzelni, hogy hogy lehetne tömörebben használhatóra megírni egy általános függvénykönyvtárt. Mondjuk vegyünk egy esetet, van egy #content div-ed, ebben az összes linkhez hozzá akarsz tenni egy kis ikont, kicsit át akarod alakítani a stílusát is, meg mondjuk azoknál a linkeknél, ahol nincs tooltip, ott a link címét akarod tooltipként beállítani. Ez kvázi egy sor, persze több sorba törve jobban átlátható.
$('#content a')
.append( $('<img>', {'src': 'linkicon.png'}).css('border','0px') )
.attr('target','_blank')
.css({'textDecoration': 'none', 'border-bottom': '1px dotted blue'})
.each(function() {
if (typeof $(this).attr('title')=='undefined') $(this).attr('title',$(this).attr('href'));
});
(Oké, egy részét CSS-ből lenne célszerűbb megoldani, de ez csak afféle állatorvosi ló akart lenni. Ugyanezt pure Javascriptben jóval hosszadalmasabb, körülményesebb, kevésbé egységes.)
> Mivel saját összetett rendszert csinálok, ahol az elemek szervesen kapcsolódnak egymáshoz, sokkal jobban együttműködnek a kódjaim
Ez javarészt szemlélet kérdése. A jQuery ilyen szempontból moduláris szemléletű. Minden jQuery objektum, amik egymástól javarészt független metódusokkal rendelkeznek, amik csak azt csinálják, ami a dolguk. Az objektumot magát adják vissza visszatérési értékként, így a metódusok szépen láncra fűzhetőek, így egy nagyon tömör, mégis jól átlátható kódot lehet velük írni. Maga a rendszer sokféle hibát lekezel, nem kell figyelned kompatibilitási kérdéseket.
Persze kinek milyen szemlélet szimpatikus ugye, milyen paradigmát érez sajátjának. Lehet, hogy valaki látja, hogy egy rendszer miért jó, praktikus, csak éppen idegen az ő gondolkodásmódjától, így számára nem az a megfelelő. A lényeg végülis, hogy az a kód, amit csinálsz, az jó legyen, helyesen működjön, azoknak a szempontoknak feleljen meg, aminek kell, olyan mértékben, amilyen mértékben elvárod (biztonság, gyorsaság, hibatűrés, átviteli sebesség, memóriahasználat, anyámkínja).
Egyébiránt azért is jó a jQuery, mert egyrészt nagyon gyorsan elsajátítható a használata. Másrészt nem sürget semmi, haladhatsz lépésről lépésre, használhatod csak egy, majd csak két, majd csak háromféle problémánál, a többinél meg csinálhatod tovább pure javascriptben.
Pl. ha még nem tudod, nem ismered, hogy a jQuery-vel létre is lehet hozni DOM elemeket, akkor létrehozod pure javascriptben, jQuery-vel azt is hozzá tudod fűzni valamihez.
Még néhány szempont. A jQuery kvázi standardá vált. Rengeteg helyen találkozhatsz vele, más projekteknél is. Ha abba kell belenyúlnod, vagy értelmezned a kódot, akkor jól jön, hogy értesz hozzá. Sokszor egy-egy javascriptes kérdésre adott válaszban alapból feltételezik, hogy használhatsz és használsz is jQuery-t. Könnyen bővíthető saját metódusokkal, rengeteg kész plugin létezik hozzá, és ezeket nagyon egyszerűen használatba tudod venni. (Akár jQuery, akár jQuery UI-ról legyen szó.) A kód elég jól optimalizált, és tényleg kvázi minden böngészővel kompatibilis. (Ami a pure Javascipt esetén, meg az ilyen-olyan saját fejlesztésű vagy innen-onnan összeszedett kódokról nem mindig mondható el.)
Szóval teljesen oké, hogy te nem annyira használod, saját függvénykönyvtárakat használsz, de én ezt tudtam így ehhez hozzáfűzni, mint alternatív véleményt.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!