# Ajax

### A Wikipédiából, a szabad lexikonból.

  Ez a lap egy webfejlesztési technikáról szól. A futballcsapat itt található: Ajax Amsterdam

Nem hivatalos AJAX logó

Az Ajax (Asynchronous JavaScript and XML) egy webfejlesztési technika interaktív webalkalmazások létrehozására. A weblap kis mennyiségű adatot cserél a szerverrel a háttérben, így a lapot nem kell újratölteni minden egyes alkalommal, amikor a felhasználó módosít valamit. Ez növeli a honlap interaktivitását, sebességét és használhatóságát. A kifejezést először Jesse James Garrett használta 2005. februári cikkében, melynek címe Ajax: A New Approach to Web Applications. Később Garett kijelentette, hogy az Ajax nem betűszó.

Az Ajax a következő technikák kombinációja:

- XHTML (vagy HTML) és CSS a tartalom leírására és formázására.
- DOM kliens oldali script nyelvekkel kezelve a dinamikus megjelenítés és a már megjelenített információ együttműködésének kialakítására.
- 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.
- XML formátumot használnak legtöbbször az adattovábbításra a kliens és a szerver között, bár más formátumok is megfelelnek a célnak, mint a formázott HTML vagy a sima szöveg.

Mint a DHTML, a LAMP vagy az SPA, az Ajax sem egy technológia önmagában, hanem egy kifejezés közösen használt technológiákra.

## [szerkesztés] Történelem

A kifejezést először Jesse James Garrett használta 2005. februári cikkében, melynek címe Ajax: A New Approach to Web Applications. Garett a zuhany alatt gondolkodott a fogalmon, amikor rájött, hogy egy rövid kifejezésre van szükség, amin keresztül be tudja mutatni az ajánlott technológiákat egy megrendelőnek. Későbbi előadásokon Garett kijelentette, hogy az Ajax nem betűszó.

Bár az Ajax kifejezés 2005-ben született meg, az ajax megszületését lehetővé tevő technológia egy évtizeddel előtte jött létre a Microsoft Remote Scripting kezdeményezése kapcsán. A tartalom aszinkron betöltésének lehetősége, azaz egy már megnyitott oldal tartalmának frissítése az oldal újratöltése nélkül, ellenben már az IFRAME elemtípus (1996, Internet Explorer 3) és a LAYER elemtípus (1997 Netscape 4) idejére vezethető vissza. Mindkét elemtípusnak van egy `src` attribútuma, ami bármely létező URL-t képes fogadni. Egy JavaScriptet tartalmazó lap betöltésével, ami manipulálja a szülő lapot, ajax-szerű hatások érhetőek el.

A Microsoft Remote Scripting kezdeményezése egy elegánsabb megoldást nyújtott a problémára. Egy Java applet kérte le az adatokat, amivel a kliens oldal JavaScripten keresztül tudott kommunikálni. Ez a megoldás az Internet Explorer 4 és a Netscape Navigator 4 esetében volt használható. Később a Microsoft létrehozta az XMLHttpRequest objektumot az Internet Explorer 5-ben, és ezt a lehetőséget először az Outlook Web Access használta ki a Microsoft Exchange Server 2000 verzióban.

A Microsoft böngészőjének aszinkron képességeit kihasználva a General Interface 2001-ben kiadta a JavaScript alkalmazás keretrendszerét. Ez olyan megjelenítést, felhasználói élményt és teljesítményt biztosított a honlapoknak, ami eddig csak az asztali alkalmazások esetén volt elérhető. Támogatta a HTTP-alapú adatszolgáltatásokat is, követve az egyre dominánsabbá váló utat az XML és a XML Webszolgáltatások felé.

A webfejlesztő közösségek, eleinte a microsoft.public.scripting.remote hírcsoport majd később a bloggerek, gyorsan kifejlesztettek több technikát a különböző böngészőktől független, konzisztens eredmény biztosítására. 2002-ben a közösség kérésére létrehozták a Microsoft Remote Scriptinget, ami lecserélte a Java appletet az XMLHttpRequestre.

Mivel az XMLHttpRequestet ma már a legtöbb fontosabb böngésző támogatja, az alternatív technikákat már ritkábban használják. Elsősorban ott alkalmazzák őket, ahol a széleskörű kompatibilitás, a kis méret, illetve több oldal hozzáférése fontos.

## [szerkesztés] AJaX-ot használó fejlesztőkörnyezetek

Az AJaX használhatóságát és népszerűségét tükrözi, hogy egyes webalkalmazást készítő fejlesztőkörnyezetek már beépített elemként tartalmazzák, és erősen támaszkodnak rá. Néhány ezek közül:

- Ruby on Rails - Ruby-s webalk. fejlesztőkörnyezet
- TurboGears - Python-os párja
- Morfik - Free Pascal-os Webalkalmazás fejlesztőkörnyezet

| Ez az informatikai tárgyú lap még csak csonk (azaz erősen hiányos). Segíts te is, hogy igazi szócikk lehessen belőle!

## [szerkesztés] Az Ajax használatának előnyei és hátrányai

### [szerkesztés] Előnyök

#### [szerkesztés] Felhasználói felület

A legnyilvánvalóbb ok az Ajax használatára a felhasználói élmény fokozása. Az Ajax-ot használó oldalak viselkedése sokkal inkább hasonlít a desktop-os alkalmazásokhoz, mint a tipikus weboldalakhoz. Amikor egy linkre kattintás hatására a teljes weboldal újratöltődik, az sokszor időigényes művelet. Az Ajax-ot használó oldalak e helyett képesek rá, hogy csak az oldal szükséges részét frissítsék, így gyorsabb reagálást biztosítanak a felhasználói interakciókra. Néhányan úgy gondolják, hogy az Ajax lesz az a feltörekvő technológia, amelynek segítségével a jövőben a webes alkalmazások minden eddiginél interaktívabbá és így széles körben is sokkal népszerűbbé válhatnak.

#### [szerkesztés] Letöltési sebesség és szerverterhelés

Mivel az Ajax-ot használó oldalak a szervertől az adatokat HTML formázás nélkül kapják, ezért ez által a szerver terhelése és így a válaszideje is csökken. A kisebb mennyiségű adat pedig gyorsabban jut el a hálózaton a szervertől a kliensig. Tehát az Ajax-al nagymértékben csökkenthető a szerver terhelése és növelhető az oldalak letöltési sebessége. A szervertől kapott adatokból a HTML kód a böngészőben jön létre javascript segítségével, ami jól optimalizált programkód esetén legtöbbször gyorsabb – de legalább is nem lassabb – mintha az erősen leterhelt szerver hozná azt létre. Ennek oka, hogy ma már a kliens oldalon a felhasználók viszonylag gyors személyi számítógépekkel rendelkeznek, amelyek terhelése általában lényegesen alacsonyabb, mint a szerveré. Ráadásul, ha valamelyik kliens gép a lassúsága vagy leterheltsége miatt mégis lassabban hozza létre a HTML kódot, az nem érinti a párhuzamosan jelenlévő többi klienst, ami annál nagyobb előny minél nagyobb a párhuzamosan jelenlevő kliensek száma. (Ha a HTML kód a szerveren generálódik, akkor ez pont fordítva van: annál jobban lassul az oldalgenerálás, minél több klienstől érkezik kérés egyszerre.) Tehát minél nagyobb egy oldal látogatottsága annál nagyobb előnyt jelent a kliens oldali HTML generálás. Mindezen jótékony hatásokat tovább erősíti, hogy az Ajax segítségével sokszor jól megvalósítható, hogy mindig csak az éppen szükséges minimális mennyiségű adat töltődjön le a szerverről (ld. „load on demand” technika). Jó példa erre, amikor egy nagyméretű sokszintű menünél először csak a főkategóriák töltődnek le, majd egy adott főmenüre kattintva csak ennek az egy főmenünek az almenüi. Ennek köszönhetően mindig csak a feltétlen szükséges minimális mennyiségű adattal kell dolgozni. Összefoglalva az Ajax és az itt leírt módszerek együttes használatával szignifikáns oldal letöltési sebesség növekedés és szerverterhelés csökkentés érhető el. A gyorsulás általában egyenes arányban áll a webes alkalmazás funkcionális összetettségével és alkalmazáslogikájának bonyolultságával.

#### [szerkesztés] A tartalom a funkció és a forma elkülönítése

Egy másik előnye az Ajax használatának, hogy lehetővé teszi az adatokat szolgáltató- és az adatok megjelenítését végző programkód teljes elkülönítését. Bár erre az Ajax használata nélkül is léteznek megoldások. Az Ajax segítségével történö elkülönítés legkézenfekvőbb formái az alábbiak. Elkülönűlnek a nyers adatok és tartalmak - amelyek általában XML vagy hasonló stuktúrába vannak ágyazva - amelyek egy szerver oldali adatbázisból származnak.

A lap eredeti címe "http://hu.wikipedia.org../../../a/j/a/Ajax.html"

Kategóriák: Csonkok (informatika) | Csonkok 2006 júniusából | Web 2.0

##### Views

- Szócikk
- Vitalap
- Aktuális változat

##### Keresés

##### Más nyelveken

- English
- العربية
- Български
- Català
- Česky
- Deutsch
- Español
- Euskara
- فارسی
- Suomi
- Français
- Gaeilge
- Galego
- עברית
- Bahasa Indonesia
- Italiano
- 日本語
- 한국어
- Latina
- Lietuvių
- Македонски
- മലയാളം
- Nederlands
- ‪Norsk (bokmål)‬
- Polski
- Português
- Română
- Русский
- Svenska
- தமிழ்
- ไทย
- Türkçe
- Українська
- Tiếng Việt
- 中文