AJAX
Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od
verze recenzované 6. července 2021; kontroly vyžadují
20 úprav .
Ajax |
---|
|
Jazyková třída |
Webová aplikace , HTML , JavaScript , DHTML , objektový model dokumentu , XMLHttpRequest , JSON , XML , XSLT , XHTML , kaskádové styly |
Objevil se v |
2005 |
Autor |
James Garrett |
Mediální soubory na Wikimedia Commons |
AJAX , Ajax ( ˈeɪdʒæks , z angličtiny Asynchronous Javascript and XML - „asynchronní JavaScript a XML “) je přístup k vytváření interaktivních uživatelských rozhraní pro webové aplikace , který spočívá v „pozadí“ výměně dat mezi prohlížečem a webovým serverem . Výsledkem je, že při aktualizaci dat se webová stránka zcela znovu nenačte a webové aplikace jsou rychlejší a pohodlnější. V ruštině se někdy vyslovuje v přepisu jako „Ajax“. Zkratka AJAX nemá v azbuce ustálenou obdobu.
Historie
Termín AJAX poprvé veřejně použil 18. února 2005 Jesse James Garrett ve svém článku „Nový přístup k webovým aplikacím“ [1] – takto nazval novou sadu technologií, které nabídl klientovi. .
V té či oné podobě však bylo mnoho technologií dostupných a používaných mnohem dříve, například v přístupu „Remote Scripting“ navrženém společností Microsoft v roce 1998 nebo pomocí prvku HTML IFRAME, který se objevil v Internet Exploreru 3 v roce 1996 .
AJAX se stal obzvláště populární poté, co jej Google použil ve službách Gmail , Mapy Google a Google Suggest . .
Technologie
AJAX není samostatná technologie, ale koncept využití několika souvisejících technologií. AJAX je založen na dvou hlavních principech:
- použití technologie dynamického přístupu k serveru "za běhu", bez úplného opětovného načtení celé stránky, například pomocí XMLHttpRequest (hlavní objekt);
- prostřednictvím dynamického vytváření dětských rámů [2] ;
- prostřednictvím dynamického vytváření tagu <script> [3] ;
- prostřednictvím dynamického vytváření značky <img> implementované v Google Analytics.
- použití DHTML k dynamické změně obsahu stránky;
Akce rozhraní jsou převedeny na operace s prvky DOM ( Document Object Model ) , pomocí kterých se zpracovávají data dostupná uživateli, v důsledku čehož se mění jejich prezentace. Zpracovává také pohyby myši a kliknutí, stejně jako stisky kláves. Kaskádové styly nebo CSS ( Cascading Style Sheets ) poskytují konzistentní vzhled a chování prvkům aplikace a usnadňují přístup k objektům DOM. Objekt XMLHttpRequest (nebo podobné mechanismy) se používá k asynchronní komunikaci se serverem, zpracovávání požadavků uživatelů a načítání požadovaných dat za běhu.
Tři z těchto čtyř technologií – CSS, DOM a JavaScript – tvoří DHTML ( dynamické HTML ) . Podle některých autorů [4] se nástroje DHTML, které se objevily v roce 1997, ukázaly jako velmi slibné, ale nenaplnily je.
Formát přenosu dat může být prostý text, HTML kód, JSON nebo XML .
Porovnání standardního přístupu a AJAXu
V klasickém modelu webové aplikace:
- Uživatel vstoupí na webovou stránku a klikne na některé její prvky;
- Prohlížeč vytvoří a odešle požadavek na server ;
- V reakci na to server vygeneruje zcela novou webovou stránku a odešle ji prohlížeči atd., načež prohlížeč zcela znovu načte celou stránku.
Při použití AJAX:
- Uživatel vstoupí na webovou stránku a klikne na některé její prvky;
- Skript (v JavaScriptu ) určuje, jaké informace jsou potřeba k aktualizaci stránky;
- Prohlížeč odešle serveru příslušný požadavek ;
- Server vrátí pouze tu část dokumentu, pro kterou přišel požadavek;
- Skript provádí změny na základě přijatých informací (bez opětovného načtení celé stránky).
Výhody
Úspora provozu, snížení zatížení serveru
Při správné implementaci vám AJAX umožňuje několikrát snížit zatížení serveru. Zejména všechny stránky webu jsou nejčastěji generovány podle jedné šablony, včetně nezměněných prvků („záhlaví“, „navigační lišta“, „patička“ atd.), jejichž generování vyžaduje přístup k různým souborům, čas zpracovávat skripty (a někdy i dotazy do databáze) – to vše lze vynechat, pokud nahradíme plné zatížení stránky generováním a přenosem pouze obsahu.
Rychlejší odezva uživatelského rozhraní
Vzhledem k tomu, že načítání změněné části je mnohem rychlejší, uživatel vidí výsledek svých akcí rychleji a bez blikání stránky (dochází při plném opětovném načtení).
Příležitosti pro interaktivní zpracování
Když například zadáte vyhledávací dotaz na
Google, zobrazí se nápověda s možnými možnostmi dotazu. Na mnoha stránkách uživatel při registraci zadá jméno a hned vidí, zda je toto jméno dostupné nebo ne. AJAX je užitečný pro programování
chatů , administrátorských panelů a dalších nástrojů, které zobrazují data, která se v čase mění.
Média se nezastaví
Stránka se znovu nenačte, přehrávač pokračuje v práci. To je důvod, proč je AJAX cenný při hostování zvuku a videa.
YouTube pro rok 2021 vám tedy umožňuje přehrávat videa v režimu
obraz v obraze .
Nevýhody
Nedostatek integrace se standardními nástroji prohlížeče
URL se nemění, proto tlačítko zpět nefunguje, záložku nelze uložit. Problém lze úspěšně vyřešit pomocí History.pushState
[5] .
Dynamicky načítaný obsah není pro vyhledávače dostupný (pokud nezkontrolujete, zda je požadavek běžný nebo
XMLHttpRequest )
Vyhledávače nemohou spouštět
JavaScript , takže vývojáři se musí postarat o alternativní způsoby přístupu k obsahu stránek.
[ specifikovat ] .
Staré metody účtování statistik stránek se stávají irelevantními
Mnoho statistických služeb sleduje zobrazení nových stránek na webu. Pro weby, jejichž stránky hojně využívají AJAX, již tato statistika není relevantní.
Složitost projektu
Logika zpracování dat je přerozdělena - dochází k selekci a částečnému předání procesů primárního formátování dat na klientskou stranu. To komplikuje kontrolu integrity formátů a typů. Konečný efekt technologie může být kompenzován nepřiměřeným zvýšením nákladů na kódování a řízení projektů a také rizikem snížení dostupnosti služby pro koncové uživatele.
Vyžaduje povolený JavaScript v prohlížeči
Z bezpečnostních důvodů může být deaktivován. Kromě toho jsou stránky AJAX obtížně přístupné pro neplnohodnotné prohlížeče, roboty a
webové archivy .
Problémy se zobrazováním nestandardních kódování v některých skriptech ajax
Problematika AJAX a azbuky je předmětem mnoha diskuzí na internetu
[6] .
Pomalá rychlost při hrubém programování
Navzdory skutečnosti, že AJAX byl původně navržen speciálně pro zvýšení rychlosti, může hrát krutý vtip: když je na jedné stránce mnoho požadavků AJAX a například při každém kliknutí se načte seznam, stránka AJAX se ještě zpomalí než tradiční.
Špatné chování na nedůvěryhodných připojeních
Pokud se často ztrácí komunikace (z důvodu ztráty operátora nebo zahlcení spojení), lze alespoň znovu načíst normální stránku. AJAXovou stránku (například s „nekonečným“ rolováním) musí uživatel znovu načíst od samého začátku a hledat tam, kde skončil. Paralelní práce - vlastnost AJAX - zde má negativní vliv, rozděluje již tak úzký kanál na mnoho malých spojení a je pravděpodobné, že některá z nich budou přerušena. Problém částečně řeší historické API.
Riziko
vymýšlení požadavku jinými weby
Výsledkem požadavku AJAX může být kód
JavaScript (zejména
JSON ).
XMLHttpRequest je platný pouze
ve stejné doméně a značka <script> není. Pokud napíšete
< typ skriptu = "text/javascript" src = "http://example.org/inbox.php" ></ skript >
pak bude do
HTML vložena schránka uživatele, který je autorizován na tomto počítači na tomto počítači example.org. Pro ochranu se používá požadavek
POST .
GET je však považován za
idempotent , a proto je uložen do mezipaměti, POST nikoli, takže
Google vloží na začátek odpovědi
nekonečnou smyčku : AJAX může s odpovědí udělat cokoli, včetně odstranění smyčky, a značka <script>propojí skript tak, jak je, a zacyklí.
Alternativní technologie
V chronologickém pořadí:
Adobe Flash
Zásobník technologií Flash (dříve Macromedia Flash) ve formě ActionScript 3, Adobe Flex a Flash Remoting tvoří technologický základ RIA (Rich Internet Applications), aktivně propagovaný společností Macromedia (získanou společností Adobe ). Technologie Flash je vhodná pro různé aplikace, od počítačových her až po komplexní rozhraní podnikových aplikací. V rámci této technologie jsou implementovány výkonné nástroje pro podporu grafiky, které nejsou dostupné v základních nástrojích Ajax (i když stále více funkcí je implementováno v rámci standardu HTML5 a CSS3).
Poznámky
- ↑ Jesse James Garrett. Ajax: Nový přístup k webovým aplikacím . Adaptivní cesta (18. února 2005). Získáno 1. března 2021. Archivováno z originálu dne 12. února 2021. (neurčitý)
- ↑ Vzdálené skriptování pomocí IFRAME Archivováno 26. června 2014 na Wayback Machine
- ↑ JsHttpRequest (downlink) . Datum přístupu: 24. prosince 2006. Archivováno z originálu 21. října 2007. (neurčitý)
- ↑ Dave Crane. Ajax v akci . - Williams, 2008. - 640 s. — ISBN 9785845910349 . Archivováno 12. prosince 2017 na Wayback Machine
- ↑ Rozhraní API pro historii/stav . Získáno 15. října 2012. Archivováno z originálu 19. října 2011. (neurčitý)
- ↑ AJAX a ruská písmena - problém s kódováním. (nedostupný odkaz) . Získáno 15. 8. 2016. Archivováno z originálu 25. 8. 2016. (neurčitý)
Literatura
- Brett McLaughin. Učení Ajaxu = Head Rush Ajax. - Petrohrad. : Peter , 2007. - ISBN 978-5-91180-322-3 .
- Štěpán Holzner. Ajax Programmer's Bible = Ajax Bible. - M . : Dialektika , 2009. - S. 553. - ISBN 978-5-8459-1502-3 .
- Dave Crane, Bear Bibo, Jordon Sonneveld. Ajax v praxi = Ajax v praxi. - M .: Williams , 2007. - ISBN 978-5-8459-1327-2 .
- Daniel Woolston. Ajax a platforma .NET 2.0 pro profesionály = Pro Ajax a platforma .NET 2.0. - M .: Williams , 2007. - S. 464. - ISBN 1-59059-670-6 .
- Dave Crane, Eric Pascarello, Darren James. AJAX v akci: technologie - Asynchronní JavaScript a XML = Ajax v akci. - M .: Williams , 2006. - S. 640. - ISBN 1-932394-61-3 .
Odkazy
Web a webové stránky |
---|
globálně |
|
---|
Lokálně |
|
---|
Typy stránek a služeb |
|
---|
Tvorba a údržba |
|
---|
Typy rozložení, stránek, webů |
|
---|
Technický |
|
---|
Marketing |
|
---|
Společnost a kultura |
|
---|