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:
- a szerverhez való dinamikus hozzáférés technológiájának használatával „menet közben”, a teljes oldal teljes újratöltése nélkül, például az XMLHttpRequest (a fő objektum) használatával;
- gyermekkeretek dinamikus létrehozásával [2] ;
- a <script> címke dinamikus létrehozásával [3] ;
- az <img> címke dinamikus létrehozásával, a Google Analyticsben megvalósított módon.
- DHTML használata az oldal tartalmának dinamikus megváltoztatásához;
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:
- A felhasználó belép egy weboldalra, és rákattint annak egyes elemeire;
- A böngésző kérést formál és küld a szervernek ;
- 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:
- A felhasználó belép egy weboldalra, és rákattint annak egyes elemeire;
- A szkript ( JavaScriptben ) meghatározza, hogy milyen információkra van szükség az oldal frissítéséhez;
- A böngésző megfelelő kérést küld a szervernek ;
- A szerver a dokumentumnak csak azt a részét adja vissza, amelyre a kérés érkezett;
- 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
- ↑ 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. (határozatlan)
- ↑ Távoli szkriptelés IFRAME -el Archiválva : 2014. június 26. a Wayback Machine -nél
- ↑ JsHttpRequest (lefelé irányuló kapcsolat) . Hozzáférés dátuma: 2006. december 24. Az eredetiből archiválva : 2007. október 21. (határozatlan)
- ↑ Dave Crane. Ajax akcióban . - Williams, 2008. - 640 p. — ISBN 9785845910349 . Archiválva : 2017. december 12. a Wayback Machine -nál
- ↑ Előzmények/állapot API-k . Letöltve: 2012. október 15. Az eredetiből archiválva : 2011. október 19.. (határozatlan)
- ↑ 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.. (határozatlan)
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
Web és weboldalak |
---|
globálisan |
|
---|
Helyileg |
|
---|
Webhelyek és szolgáltatások típusai |
|
---|
Alkotás és karbantartás |
|
---|
Elrendezések, oldalak, webhelyek típusai |
|
---|
Műszaki |
|
---|
Marketing |
|
---|
Társadalom és kultúra |
|
---|