3 AJAX


3.1 Historie

Asynchronous JavaScript and XML (AJAX) je souhrnné označení technologie pro vývoj interaktivních webových aplikací. Dřívější webové stránky byly čistě statické, případně generovaly dynamický obsah pouze v případě znovunačtení celé stránky (pomocí skriptovacích jazyků jako např. PHP, ASP, CGI…), mírná dynamičnost byla možná díky použití JavaScriptu, případně DHTML pro vizuální efekty, ale především se jednalo o synchronní přístup – uživatel provedl akci (např. vyplnil formulář) a na základě této akce byly odeslány data na server, ten je nějakým způsobem zpracoval a vygeneroval znovu celou HTML stránku, kterou webový prohlížeč na straně klienta zobrazil.
Pomocí technologie AJAX je možné načíst pouze část stránky (typicky např. data v tabulce, případně obsah elementu DIV či SPAN), stejně tak odeslat pouze část dat na pozadí bez nutnosti překreslovat celou stránku. Tato vlastnost ostatně není žádná novinka – komunikaci se serverem na pozadí umožňoval už např. Macromedia Flash od verze 4, stejně tak mezi první průkopníky základu této technologie je možné považovat společnosti Microsoft a Netscape, které ve svých prohlížečích definovaly tagy IFRAME (Microsoft Internet Explorer 3) a LAYER (Netscape Communicator 4). V Microsoft Internet Exploreru 4 (a Netscape Communicatoru 4) bylo také možné používat Java applet běžící v prohlížeči, který na pozadí komunikoval se serverem. Za průlom se dá považovat až objekt XMLHttpRequest, který byl zaveden v prohlížeči Microsoft Internet Explorer.
Termín AJAX použil poprvé až v únoru roku 2005 Jesse James Garret ve článku Ajax: A new approach to web applications [1]. V té době již tuto technologii aktivně využívala společnost Google pro některé své služby, především Gmail, Suggest… Od té doby nastal doslova boom této technologie a dnes je součástí tzv. Web 2.0, na němž, jakožto nepsaném standardu je založena převážná většina moderních webových aplikací.

3.2 WEB 2.0

Podle WIKIpedie může za vznik pojmu Web 2.0 nakladatelství O’Reilly (konkrétně se jedná o článek Tima O’Reillyho „What is web 2.0“ [3]), který jej definovalo jako „druhou generaci internetových služeb, která lidem umožňuje spoluvytvářet a sdílet informace novým způsobem – například sociální sítě, stránky využívající wiki, komunikační nástroje a folksonomie“. Také konference „Web 2.0“, která proběhla v roce 2005 měla velké ohlasy.
Na jednu stranu se může zdát, že Web 2.0 je označením pro souhrn velice progresivních technologií, na stranu druhou již většina technologií, které do tohoto souhrnu spadají existuje delší dobu a weby, které tyto technologie využívají „označovány nálepkou“ Web 2.0 nejsou. Spíše než o revoluci se tedy jedná o pouhou evoluci, z důvodu poptávky po novějších technologiích – zvyšují se kapacity přípojek koncových uživatelů, počty uživatelů internetu rostou, místo obrázků jsou maily posílány videa, roste potřeba sdílení multimediálního obsahu… Jak bylo napsáno výše, jedná se o souhrn moderních technologií, které mohou být (při správném použití) velkým přínosem pro vývojáře a stejně tak dobrým pomocníkem pro uživatele.
Jak jsem napsal výše, Web 2.0 slučuje některé moderní technologie, do kterých patří zejména:
  • Na AJAXu založené Rich Internet Aplikace
  • Rich Internet Aplikace bez použití AJAXu
  • Kaskádové styly
  • Semanticky správné XHTML značkování
  • Informační kanály (RSS a Atom)
  • Sociální sítě (Folksonomie, weblogy, wiki…)
  • Sdružování služeb nabízených na různých webech na jedno místo (mohou sem spadat i uvedené RSS)
  • Representation State Transfer
  • Programová rozhraní webových služeb (SOAP)

3.3 Používané technologie

V úvodu jsem napsal, že AJAX je technologie, což není úplná pravda. AJAX je jakési zastřešení několika různých technologií, které jako celek tvoří mocný nástroj.
  • Definice dokumentu pomocí XHTML – prakticky se jedná o Document Object Model (DOM) reprezentující zobrazení webové stránky zapsaný jako stromová struktura
  • Definice stylů stránky pomocí Cascading Style Sheets (CSS)
  • Propojení zobrazené stránky za pomocí XML jazyka (je možné použít i jakýkoliv jiný formát, např. HTML, čistý text, či JavaScript Object Notation, XML je ovšem z hlediska rozšířenosti nástrojů pro parsování tohoto typu nejvhodnější)
  • Asynchronní metoda pro získávání dat – XMLHttpRequest
  • Rutiny v JavaScriptu umožňující spojení se serverem na pozadí a upravující nebo modifikující DOM stránky

3.4 Příklady praktického použití AJAXu

Technologie AJAX je ideální například pro následující činnosti:

  • Validace položek formulářů v reálném čase – v praxi se využívá např. pro ověření správnosti seriového čísla, neexistence loginu nově vytvářeného uživatele…
  • Autokompletace – v češtině se vžil pojem „našeptávač“ – při psaní do pole uživatel má možnost vybíraz z odpovídajích možností, aby nemusel vypisovat celou frázi
  • Načítání na vyžádání – načtení konkrétní části stránky na pozadí a vložení do existujícího DOM
  • Sofistikované komponenty – dynamicky generované stromové struktury, menu tabulky…
  • Serverem vynucená změna obsahu – aktualizování objektů na stránce bez zásahu uživatele – měnové kurzy, kurzy sázek, hlasování
  • Částečné odeslání – odeslání dat bez nutnosti překreslení celé stránky

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *