AJAX

Az AJAX (lehet Ajax-nak is írni) a „Asynchronous JavaScript and XML” angol kifejezés rövidítése, ami egy olyan fejlesztési módszert takar, amivel interaktív WEB-oldalakat lehet létrehozni. A módszer lényege, hogy a háttérben kis mennyiségű adatcsere folyik a felhasználó böngészője, és a szerver között. Így nem kell egyfolytában az egész oldalt újratölteni, elég csak bizonyos részeit frissíteni, ha a felhasználó valamit megváltoztat.

Alkalmazott technológiák

  • XHTML (vagy html) és CSS a tartalom leírására, és formázására
  • DOM kliens oldali szkript nyelv elsősorban javascript és jscript a dinamikus megjelenítéshez
  • XMLHttpRequest objektum az adatok aszinkron kezelésére a kliens és a webszerver között. Néhány Ajax keretrendszer esetén és bizonyos helyzetekben IFrame-et használnak XMLHttpRequest objektum helyett, de használnak dinamikusan létrehozott <script> elemeket is.
  • XML formátumot használnak a legtöbb esetben a szerver és a kliens közti adatcserére.

Történelem

Kezdet

Az „Ajax” kifejezést nyilvánosan először Jesse James Garrett használta 2005. februárjában írt cikkében (Ajax: A New Approach to Web Applications). A kifejezést akkor alkotta meg, mikor rájött, hogy szükség van egy rövidítésre amin keresztül be tudja mutatni egy megrendelőjének a tervezett technológiát. A későbbiekben egyébként tagadta, hogy az Ajax betűszó.

Gyökerek

Annak ellenére, hogy maga a kifejezés csak 2005-ben jött létre, az Ajax megalkotását lehetővé tévő technológiák már jóval korábban léteztek. Első kezdeményezés a Microsoft-nak tudható, a Remote Scripting képében. A Netscape is írt egy cikket Inner-Browsing címmel 2003-ban, ami szintén a böngészőben már megjelenített oldal teljes frissítés nélküli tartalom-módosításáról szól. A technológia (vagy inkább annak lehetősége) először az IFRAME (Internet Explorer 3, 1996), és LAYER (a Netscape Navigator 4 használta először 1997-ben, de fejlesztését a Mozilla korai stádiumában abbahagyták) tagek képében jelent meg. Mindkét elemtípus rendelkezik egy src paraméterrel, amit az oldalon futó JavaScript bármikor módosíthat, ezzel Ajax-szerű hatást eredményezve. Ezt a módszert inkább a DHTML szabvány fedi le. A flash a 4-es verziótól szintén képes a szerverről XML és CSV fájlok betöltésére az oldal frissítése nélkül.

Remote Scripting

A Microsoft Remote Scripting (MSRS) először 1998-ban került bemutatásra, mint ennek a technikának egy kifinomultabb, elegánsabb megvalósítása. Lényege, hogy egy, a böngésző által betöltött java applet végzi a kommunikációt a szerverrel, és ezzel kommunikál a JavaScript. Ez a technológia egyformán működött Internet Explorer 4 és Netscape Navigator 4 alatt is. A Microsoft ezt követően alkotta meg az XMLHttpRequest objektumot az Internet Explorer 5-ben, és alkalmazta a Microsoft Exchange Server 2000-el együttműködő Outlook Web Access-ben.

Előnyök és hátrányok

Az Ajax előnyei

Felhasználói felület

Az Ajax használatának legnyilvánvalóbb oka a felhasználói felület fejlesztése, és a felhasználói élmény javítása. Az Ajax alapú weboldalak úgy viselkednek, mint a különálló programok. Amikor a felhasználó egy közönséges oldalon kattint egy linkre, a teljes oldal újratöltése egy elég nehézkes folyamat. Ehelyett az Ajax által dinamikusan frissített oldalak jóval gyorsabban reagálnak a felhasználó kérésére.

Sávszélesség-kihasználás

Mivel a HTML kód „helyben készül”, az oldalak jóval gyorsabban töltenek be, hiszen csak kisebb adatcsomagokat kell a szerverről egyszerre letölteni.

Az adatforgalom visszaszorítása érdekében néhány web-alkalmazás csak az eseménykezelőket tölti le az oldal lekérésekor, és a hozzájuk tartozó funkciókat is röptében tölti be. Ezzel a technikával jelentősen visszafogható a sávszélesség-terhelés bonyolult logikájú, összetett oldalaknál.

Az Ajax hátrányai

Böngésző integráció

A dinamikusan létrehozott oldalak nem regisztrálják magukat rendesen a böngésző előzményei közé, így például a Vissza gomb sem működik megfelelően.
Ennek a problémának több megoldása is van. A legegyszerűbb talán láthatatlan IFrame-ek használata a lekérdezések futtatásához, ami így nyomot hagy az előzményekben.

Másik probléma a Könyvjelzők létrehozása. Egyik járható út a címben a # (kettőskereszt) után megadni a paramétereket. Ez azért lehetséges, mert a legtöbb böngésző engedélyezi a JavaScript számára, hogy dinamikusan lecserélje a címsort. Ez a megoldás szintén javít a Vissza-gomb problémán is.

Válaszidő problémák

Ha a böngésző és a szerver közti kommunikációban létrejövő késleltetés, megszakadás nincs megfelelően kezelve, a felhasználó számára váratlan, vagy érthetetlen „megfagyások” alakulhatnak ki a felhasználói felületen. A másik probléma, hogy ha az oldal egy apró részlete kerül csak frissítésre, nem garantált, hogy a felhasználó ezt azonnal észreveszi. Tanácsos ezért a felhasználót tájékoztatni, hogy lekérés fut a háttérben. Ezt általában úgynevezett throbber-rel szokták kivitelezni.

Kereső motor optimalizáció

A keresőmotorok többnyire nem szokták lefuttatni az Ajax kódokat, ezért az ilyen dinamikusan generált oldalakat nehéz keresőrobotok által indexelhetővé tenni. Éppen ezért ügyelni kell arra, hogy megfelelő mennyiségű információt tartalmazon az oldal statikus része.

JavaScript támogatottság

Mivel az Ajax nagyrészt JavaScriptre épül, az oldal működését nagyban befolyásolja, hogy a böngésző mennyire képes azt értelmezni. Gyakran látni olyan oldalt, ahol gyakorlatilag kétszer van megírva ugyan az, egyszer Explorer alá, egyszer pedig a Mozillával kompatibilis böngészők számára.

Felhasználás

Hijax

A Hijax az Ajax egy kiterjesztése, illetve a profibb változata. A Hijax lényege, hogy a programozók az oldalak onload paraméterében meg tudnak határozni egy lefuttatandó JavaScriptet, ami az oldalon található linkeket manipulálja. Így elérhető, hogy ha a felhasználó letiltotta a JavaScript-et, vagy a böngésző nem támogatja azt, az oldal üzemképes maradjon Ajax nélkül is.

Például ez itt egy link egy Hijax oldalon:

<a href="runsomeajaxcode.php" onclick="RunSomeAjaxCode(); return false;">An Ajax link</a>

Ha a JavaScript engedélyezve van a felhasználó böngészőjében, az oldal betöltésekor lefutó kód módosítja a linket, és a továbbiakban így néz ki:

<a href="#" onclick="RunSomeAjaxCode();">An Ajax link</a>

Külső hivatkozások

Itt néhány oldalt említenék meg, ami AJAX-ra épül:

Ajax keretrendszerek:

oktatas/informatika/honlapszerkesztes/ajax.txt · Utolsó módosítás: 2019/06/04 13:55 szerkesztette: barnkopf
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0