AJAX

Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt közreműködők, és jelentősen eltérhet a 2021. július 6-án felülvizsgált verziótól ; az ellenőrzések 20 szerkesztést igényelnek .
Ajax
Nyelvóra Webes alkalmazás , HTML , JavaScript , DHTML , Dokumentumobjektum modell , XMLHttpRequest , JSON , XML , XSLT , XHTML , Lépcsőzetes stíluslapok
Megjelent 2005
Szerző James Garrett
 Médiafájlok a Wikimedia Commons oldalon

Az AJAX , Ajax ( ˈeɪdʒæks , az angol  Asynchronous Javascript és XML szóból  – „asynchronous JavaScript and XML ”) a webalkalmazások interaktív felhasználói felületeinek felépítésének megközelítése, amely a böngésző és a webszerver közötti „háttérben” zajló adatcseréből áll . Ennek eredményeként az adatok frissítésekor a weboldal nem töltődik be teljesen, és a webalkalmazások gyorsabbak és kényelmesebbek lesznek. Oroszul néha átírásban "Ajax"-ként ejtik. Az AJAX rövidítésnek nincs jól bevált cirill analógja.

Történelem

Az AJAX kifejezést először 2005. február 18-án használta nyilvánosan Jesse James Garrett "A New Approach to Web Applications" [1] című cikkében  – így nevezte az új technológiákat, amelyeket az ügyfélnek kínált. .

Azonban ilyen vagy olyan formában számos technológia már jóval korábban is elérhető és használatos volt, például a Microsoft által 1998 -ban javasolt "Remote Scripting" megközelítésben , vagy a HTML IFRAME elem használatával, amely 1996 -ban jelent meg az Internet Explorer 3- ban .

Az AJAX különösen népszerűvé vált, miután a Google használta a Gmailben , a Google Mapsben és a Google Suggest szolgáltatásban. .

Technológia

Az AJAX nem egy önálló technológia, hanem több kapcsolódó technológia használatának koncepciója. Az AJAX két fő elven alapul:

Az interfész műveletek DOM ( Document Object Model ) elemekkel konvertálódnak műveletekké, amelyek  segítségével a felhasználó rendelkezésére álló adatok feldolgozásra kerülnek, aminek következtében a megjelenítésük megváltozik. Feldolgozza az egérmozgásokat és a kattintásokat, valamint a billentyűleütéseket is. A Cascading Style Sheets vagy CSS ( Cascading Style Sheets ) egységes megjelenést és érzetet biztosít az alkalmazáselemeknek, és megkönnyíti a DOM-objektumok elérését. Az XMLHttpRequest objektum (vagy hasonló mechanizmusok) a szerverrel való aszinkron kommunikációra, a felhasználói kérések feldolgozására és a szükséges adatok betöltésére szolgál futás közben.  

A négy technológia közül három – CSS, DOM és JavaScript  – alkotja a DHTML -t ( dinamikus HTML ) .  Egyes szerzők szerint [4] az 1997-ben megjelent DHTML-eszközök nagy ígéretet tettek, de nem váltották be azokat.

Az adatátviteli formátum lehet egyszerű szövegtöredék, HTML kód, JSON vagy XML .

A standard megközelítés és az AJAX összehasonlítása

A klasszikus webalkalmazás-modellben:

  1. A felhasználó belép egy weboldalra, és rákattint annak egyes elemeire;
  2. A böngésző kérést formál és küld a szervernek ;
  3. Válaszul a szerver egy teljesen új weboldalt generál és elküldi a böngészőnek stb., ami után a böngésző teljesen újratölti az egész oldalt.

AJAX használatakor:

  1. A felhasználó belép egy weboldalra, és rákattint annak egyes elemeire;
  2. A szkript ( JavaScriptben ) meghatározza, hogy milyen információkra van szükség az oldal frissítéséhez;
  3. A böngésző megfelelő kérést küld a szervernek ;
  4. A szerver a dokumentumnak csak azt a részét adja vissza, amelyre a kérés érkezett;
  5. A szkript a kapott információk alapján módosítja (teljes oldal újratöltés nélkül).

Előnyök

Forgalom megtakarítása, a szerver terhelésének csökkentése Megfelelő megvalósítás esetén az AJAX lehetővé teszi a szerver terhelésének többszöri csökkentését. Különösen a webhely összes oldala leggyakrabban egy sablon szerint jön létre, beleértve a változatlan elemeket ("fejléc", "navigációs sáv", "lábléc" stb.), amelyek generálása különböző fájlokhoz való hozzáférést igényel, az idő szkriptek feldolgozására (és esetenként az adatbázis lekérdezésére is) - mindez elhagyható, ha a teljes oldalbetöltést csak a tartalom generálásával és továbbításával helyettesítjük. Gyorsabb felhasználói felület válaszkészség Mivel a megváltozott rész betöltése sokkal gyorsabb, így a felhasználó gyorsabban és lapvillódzás nélkül (teljes újratöltéskor jelentkezik) látja tevékenységének eredményét. Lehetőségek interaktív feldolgozásra Például, amikor beír egy keresési lekérdezést a Google-ba, megjelenik egy eszköztipp a lehetséges lekérdezési beállításokkal. Sok oldalon a regisztráció során a felhasználó beír egy nevet, és azonnal látja, hogy ez a név elérhető-e vagy sem. Az AJAX hasznos a csevegések , adminisztrációs panelek és egyéb olyan eszközök programozásához, amelyek idővel változó adatokat jelenítenek meg. A média nem áll le Az oldal nem töltődik be újra, a lejátszó tovább dolgozik. Ez az oka annak, hogy az AJAX értékes az audio- és videotárhely területén. Tehát a YouTube for 2021 lehetővé teszi a videók kép a képben módban történő lejátszását .

Hátrányok

A szabványos böngészőeszközökkel való integráció hiánya Az URL nem változik, ezért a vissza gomb nem működik, a könyvjelző mentése nem lehetséges. A probléma sikeresen megoldható a History.pushState [5] segítségével . A dinamikusan betöltődő tartalom nem érhető el a keresőmotorok számára (ha nem ellenőrzi, hogy a kérés szabályos vagy XMLHttpRequest ) A keresőmotorok nem tudják végrehajtani a JavaScriptet , ezért a fejlesztőknek gondoskodniuk kell a webhely tartalmához való hozzáférés alternatív módjairól.[ adja meg ] . A webhelystatisztikák elszámolásának régi módszerei irrelevánssá válnak Számos statisztikai szolgáltatás nyomon követi a webhely új oldalainak megtekintéseit. Azoknál a webhelyeknél, amelyek oldalai széles körben használják az AJAX-ot, ez a statisztika már nem releváns. A projekt összetettsége Az adatfeldolgozás logikája újraelosztásra kerül - megtörténik az elsődleges adatformázási folyamatok kiválasztása és részleges átvitele a kliens oldalra. Ez megnehezíti a formátumok és típusok integritásának ellenőrzését. A technológia véghatását ellensúlyozhatja a kódolás és a projektmenedzsment költségének indokolatlan növekedése, valamint a szolgáltatás végfelhasználók számára elérhető elérhetőségének csökkenésének kockázata. A böngészőben engedélyezni kell a JavaScriptet Biztonsági okokból letiltható. Ezenkívül az AJAX oldalakat nehezen érik el a nem teljes értékű böngészők, robotok és webarchívumok . Problémák a nem szabványos kódolások megjelenítésével egyes ajax szkriptekben Az AJAX és a cirill kérdésekkel kapcsolatban számos vita folyik az interneten [6] . Lassú sebesség durva programozásban Annak ellenére, hogy az AJAX-ot eredetileg kifejezetten a sebesség növelésére tervezték, kegyetlen viccet tud játszani vele: ha sok AJAX-kérés van egy oldalon, és például minden kattintásra betöltődik egy lista, az AJAX oldal még lassabb lesz. mint egy hagyományos. Rossz viselkedés nem megbízható kapcsolatoknál Ha a kommunikáció gyakran megszakad (a szolgáltató elvesztése vagy a kapcsolat torlódása miatt), a normál oldal legalább újratölthető. Egy AJAX oldalt (például "végtelen" görgetéssel) a felhasználónak újra kell töltenie az elejétől kezdve, és meg kell keresnie, hol hagyta abba. A párhuzamos munka - az AJAX sajátossága - itt negatívan hat, egy amúgy is szűk csatornát sok kis kapcsolatra oszt fel, és valószínű, hogy ezek egy része megszakad. A problémát részben megoldja a történelem API. Fennáll annak a veszélye, hogy más telephelyek kérik Az AJAX-kérés eredménye lehet JavaScript -kód (különösen a JSON ). Az XMLHttpRequest csak ugyanazon a tartományon belül érvényes , a címke <script> pedig nem. Ha írsz < script type = "text/javascript" src = "http://example.org/inbox.php" ></ script > akkor az ezen a számítógépen engedélyezett felhasználó postaládája bekerül a HTMLexample.org -be . A védelem érdekében POST kérést használnak. De a GET -et idempotensnek tekintik , ezért gyorsítótárazottnak, a POST-t nem, ezért a Google egy végtelen ciklust szúr be a válasz elejére : az AJAX bármit megtehet a válasszal, beleértve a ciklus eltávolítását is, és a címke <script>összekapcsolja a szkriptet úgy, ahogy van, és a ciklusokat.

Alternatív technológiák

Időrendi sorrendben :

Adobe Flash

Az ActionScript 3, Adobe Flex és Flash Remoting formájában megjelenő Flash technológiai halom (korábban Macromedia Flash) képezi a RIA (Rich Internet Applications) technológiai alapját, amelyet a Macromedia (az Adobe felvásárolt ) aktívan támogat . A Flash technológia számos alkalmazáshoz alkalmas, a számítógépes játékoktól a bonyolult üzleti alkalmazásfelületekig. Ennek a technológiának a keretein belül olyan hatékony grafikus támogatási eszközöket valósítanak meg, amelyek az alapvető Ajax eszközökben nem érhetők el (bár egyre több funkciót valósítanak meg a HTML5 és CSS3 szabványon belül).

Jegyzetek

  1. Jesse James Garrett. Ajax: A webalkalmazások új megközelítése . Adaptive Path (2005. február 18.). Letöltve: 2021. március 1. Az eredetiből archiválva : 2021. február 12.
  2. Távoli szkriptelés IFRAME -el Archiválva : 2014. június 26. a Wayback Machine -nél 
  3. JsHttpRequest (lefelé irányuló kapcsolat) . Hozzáférés dátuma: 2006. december 24. Az eredetiből archiválva : 2007. október 21. 
  4. Dave Crane. Ajax akcióban . - Williams, 2008. - 640 p. — ISBN 9785845910349 . Archiválva : 2017. december 12. a Wayback Machine -nál
  5. Előzmények/állapot API-k . Letöltve: 2012. október 15. Az eredetiből archiválva : 2011. október 19..
  6. AJAX és orosz betűk - kódolási probléma. (nem elérhető link) . Letöltve: 2016. augusztus 15. Az eredetiből archiválva : 2016. augusztus 25.. 

Irodalom

  • Brett McLaughin. Ajax tanulása = Head Rush Ajax. - Szentpétervár. : Péter , 2007. - ISBN 978-5-91180-322-3 .
  • Holzner István. Ajax Programozói Biblia = Ajax Biblia. - M . : Dialektika , 2009. - S. 553. - ISBN 978-5-8459-1502-3 .
  • Dave Crane, Bear Bibo, Jordon Sonneveld. Ajax a gyakorlatban = Ajax a gyakorlatban. - M .: Williams , 2007. - ISBN 978-5-8459-1327-2 .
  • Daniel Woolston. Ajax és a .NET 2.0 Platform szakembereknek = Pro Ajax és a .NET 2.0 Platform. - M .: Williams , 2007. - S. 464. - ISBN 1-59059-670-6 .
  • Dave Crane, Eric Pascarello, Darren James. AJAX működés közben: technológia - Aszinkron JavaScript és XML = Ajax működésben. - M .: Williams , 2006. - S. 640. - ISBN 1-932394-61-3 .

Linkek