AJAX neboli Asynchronous JavaScript and XML není programovací jazyk, ale technologie vývoje interaktivních webových aplikací. Ty mění svým stránkám obsah bez nutnosti kompletního znovunačtení. Využívá k tomu asynchronní zpracování webových stránek pomocí knihovny napsané v Javascriptu. Oproti klasickým webovým aplikacím poskytují prostředí příjemnější pro uživatele, nevýhodou je, že vyžadují moderní webové prohlížeče.

AJAX používá kombinaci vestavěného XMLHttpRequest objektu, který od webového serveru dotazuje data a JavaScriptu a HTML DOM, které zobrazují data nebo s nimi pracují.

Historie

Termín AJAX byl poprvé veřejně využit ve článku Ajax: A New Approach to Web Applications (Ajax: Nový přístup k webovým aplikacím) Jesse Jamese Garretta v roce 2005. Principy, ze kterých Ajax vychází, jsou ale mnohem starší. Mezi začátky by bylo možné zařadit zavedení elementu IFRAME do Internet Exploreru 3.0 v roce 1996 nebo elementu LAYER do Netscape Navigator 4.0 v roce 1997. Větší popularita Ajaxu byla nastartovaná několika službami, za kterými stojí společnost Google. Nejdříve byl použit pro Gmail a následně například pro Google Maps.

Výhody použití Ajaxu

  • Umožňuje znovunačíst pouze část stránky. Většina technologií umožňuje načíst změny pouze při znovunačtení celé stránky. Naproti tomu Ajax umožňuje znovunačíst pouze část stránky, která se změnila, což výrazně snižuje náročnost webové aplikace na šířku pásma.
  • Lepší dostupnost pro uživatele. Protože Ajax umožňuje asynchronní komunikaci a znovunačtení pouze části stránky, umožňuje webovým aplikacím být dostupnější, protože se redukuje znovunačítání a uživatel může pokračovat v používání aplikace i když zároveň dochází k přenosu dat.
  • Rychlost. Použití Ajaxu snižuje traffic na serveru v requestech na obě strany. Díky tomu se sníží i čas, který je potřeba na tvorbu response na obou stranách.
  • Interakce. Ajax je velmi responzivní, celá stránka dokáže přenést data najednou.
  • Validace formulářů. Formuláře jsou běžnou součástí webových stránek. Ajax umožňuje provádět validace okamžitě, díky tomu dokáží formulace výrazně optimalizovat.

Nevýhody použití Ajaxu

  • Historie prohlížení. Dynamicky vytvářené stránky, jako jsou například ty, které využívají Ajax, často znemožňují použití historie prohlížení. Pokud se uživatel přesune mezi stránkami a následně zmáčkne tlačítko zpět, aby se vrátil, stránka se nutně nezobrazí ve stejném stavu, v jakém ji uživatel opustil. Může být užitečné oddělit jednotlivé funkcionality samostatným URL, tak aby se k nim uživatel mohl vracet pomocí tlačítek zpět nebo dopředu i za pomoci historie prohlížení.
  • Problémy s ukládáním oblíbených stránek. Podobně jako v předchozím bodu, může být na stránkách využívajících Ajax obtížné dát si nějakou stránku do oblíbených a následně se k ní vracet. To co si uživatel chtěl uložit do oblíbených totiž může být načteno dynamicky a nevrací se tak ke stejnému obsahu.
  • Indexování. Z hlediska optimalizace ve vyhledávačích je kritická nevýhoda to, že dynamicky generovaný obsah nebude naindexován v prohlížečích. To je důvod, proč bude docházet k horšími hodnocení relevantnosti v prohlížečích.
  • Open source. Je možné si zobrazit zdroj a kdokoliv si tak může zobrazit kód, který je pro Ajax napsán.
  • Vyžaduje moderní prohlížeče. Některé funkce Ajaxu jsou podporovány pouze vybranými nejmodernějšími prohlížeči.
  • Nelze získávat informace z jiného serveru. Z bezpečnostních důvodů může XMLHttpRequest objekt získávat informace pouze z hostitelského serveru úvodní stránky. Pokud je potřeba získávat data z dalšího zdroje, Ajax to neumožňuje.