Tisztázzunk néhány fogalmat!
Gazdaságinformatikusként az egyik legfontosabb feladatom, hogy az informatikai projektekben tolmácsként funkcionáljak a projektirányítás és a projekt operatív csoportjai között. Szinte kivétel nélkül minden tárgyaláson felemlegetik az AJAX-ot, mint eszközt, ami alapvetően nem probléma, viszont többször fény derül arra, ha valaki nincs pontosan tisztában a technológia fogalmi kereteivel.
Ennek hatására döntöttem úgy, hogy röviden leírom a JavaScript, az AJAX és a jQuery lényegét, valamint rávilágítok a köztük lévő kapcsolatra is. Remélem ezzel a cikkel hatékonyabbá és eredményesebbé teszem a ti jövőbeli tárgyalásaitokat is.
JavaScript
A JavaScript egy programozási nyelv, amit leginkább webes felületek fejlesztésekor alkalmaznak azért, hogy felhasználóbarátabbá, interaktívabbá és látványosabbá tegyék azt. Fontos, hogy a JavaScript kódok a weblapokat böngésző felhasználók számítógépén fut(hat)nak le. A feltételes módról röviden annyit kell tudni, hogy a kódok futtatását egyénileg tilthatják a felhasználók, és a kódok által előállított eredmény minősége függ a böngészők típusától és verziószámától, amit fejlesztéskor folyamatosan szem előtt kell tartani!
AJAX (Asynchronous JavaScript & XML)
W3Schools: “AJAX is not a new programming language, but a new way to use existing standards.”
(Forrás: http://www.w3schools.com/Ajax/Default.Asp)
Az AJAX nem egy új programozási nyelv, hanem egy olyan eljárás, melynek során a böngésző egy újabb lapletöltést végez el JavaScript kódok segítéségével úgy, hogy közben a teljes lap nem frissül, csak a portálnak egy-egy részlete. A felhasználó és a tartalom szolgáltató számára egyaránt előnyös, hiszen az eljárás kevesebb adatforgalommal jár, és részben ennek köszönhetően gyorsabbá és folyékonyabbá válik a böngészés élménye. Hátrányként említhető meg, hogy több erőforrást igényel a felhasználó számítógépétől, de ezzel együtt levesz némi terhet a kiszolgáló számítógép válláról ami a kiszolgálóval történő folyamatos kapcsolattartásnak tudható be.
jQuery
A jQuery nem más, mint egy függvénykönyvtár, azaz JavaScript nyelven előre megírt műveletek gyűjteménye. A függvények között természetesen megtalálhatóak az AJAX technológia alkalmazásához szükséges műveletek is.
Összegezve a fentieket az alábbi tanulságokat fogalmaztam meg:
- Minden AJAX művelet JavaScript kód, de nem minden JavaScript kód AJAX művelet.
- Minden jQuery függvény JavaScript kód, de nem minden jQuery függvény AJAX művelet.
Írta: petymeg (2010/04/08 09:18) • »»
“Hátrányként említhető meg, hogy több erőforrást igényel a felhasználó számítógépétől”
Ezt igazából nem értem. Mihez képest nagyobb az erőforrásigénye az AJAX-nak? Mert ahhoz képest, hogy az egész lapot újra be kellene töltenie, pont, hogy csökken a kiszolgálói-felhasználói adatforgalom. Mert ha nem lenne optimalizálva, akkor a JS kérés kiadásakor újratöltené az egész lapot a JS lefuttatásával együtt. És ez szerintem nagyobb rendszerigény, mintha csak egy kisebb szeletet kell betöltenie, még akkor is ha kliensoldali művelet folyik éppen.
Írta: Petya (2010/04/08 15:17) • »»
Jogos a felvetés, mert valóban nem fogalmaztam pontosan. Tehát itt elsősorban arra gondolok, hogy beágyazott AJAX kódsorok általában arra szolgálnak, hogy folyamatosan tartsák a kapcsolatot a kiszolgálóval, és folyamatosan frissítsenek egyes elemeket az oldalon.
Ez a folyamatos kapcsolattartás több lekérést jelent, ami több CPU használatot követel meg. Magáról a weblap megjelenítéséről általában a GPU gondoskodik, de a CPU számolja ki azt, hogy mi mekkora legyen, és a JavaScript kódot is a CPU futtatja, ezáltal több memóriára van szüksége kliens számítógépének.
Hogy egy élő példával is szolgáljak, indítsd el a Google Chrome-ot, nyisd meg a Task Manager-t, tiltsd le a JavaScript-ek futtatását és lépj be a Google Mail fiókodba. Nálam ebben az esetben 17,840 K-nál megállt a memória-allokáció. Ezután az igazságos verseny reményében újraindítottam a böngészőt, majd engedélyeztem a JavaScript-ek futtatását, és ismét beléptem a postafiókomba. Ez utóbbi esetben ~49,000-52,000 K között mozgott a memória-allokáció úgy, hogy egyik esetben sem kattintottam semmi többet, csak beléptem.
Tehát pontosítva úgy szól, hogy amíg a felhasználó számítógépén több erőforrásra van szükség, addig szerver oldalon csökkenthető az adatforgalom mennyisége.