Aktuální sekce: Weblog

Přeskočit na menu

AJAX – kde jsou hranice?

Top článek  13.9.2005 | Téma: Ajax

Co se ve skutečnosti skrývá pod celým tím humbukem kolem technologie AJAX? Jaké má AJAX výhody, jaká jsou jeho úskalí? V jakých případech ho použít? A proč ho nepoužívat jako náhradu za web?

Na Úplně Poslední středě Dobrého webu před dvěma týdny se chvíli diskutovalo o technologii, která v současnosti hýbe webem – AJAX. Jedná se o zkratku pro Asynchronous JavaScript and XML. AJAX je vlastně spojením starých známých technologií XML, JavaScript, HTTP a (X)HTML.

Co je AJAX?

AJAX umožňuje, aby stránka kontaktovala server a obdržela od něj libovolná data v XML, bez toho, aby se musela celá znovu nahrávat – vše jen pomocí JavaScriptu. To znamená, že např. zmáčknete tlačítko, chvíli čekáte a na stránce se objeví něco nového z databáze na serveru (nebo se něco změní) – bez nahrávání nové stránky.

Často se pomocí AJAXu realizují tzv. našeptávače. Když píšete něco do textového políčka, tak váš text průběžně odesílají na server a dostávají od něj nápovědná slova, která byste mohli chtít napsat. Ty vám poté předkládají ve formě seznamu pod políčkem.

Příklady

Amazon.com diamond search
Amazon.com diamond search

  • Jako jeden z prvních používal AJAX vyhledávač Google (kde obecně mají JavaScript hodně rádi) – najdete ho u Gmailu, Google Suggest (napovídá vám při psaní vyhledávacího dotazu – jedná se o našeptávač) a dalších jeho služeb.
  • Krásným příkladem využití AJAXu je Amazon.com Diamond Search (aplikace pro hledání diamantů). Zadáváte kritéria, která musí váš diamant splňovat, a průběžně se vám zobrazuje počet vyhovujících položek. Vše je navíc vyřešeno pěkně zvládnutým uživatelským rozhraním.
  • Podobnou aplikaci jako Google Suggest nabízí u nás Seznam se svým Našeptávačem.

Pro a proti

Výhody

  • AJAX urychluje uživateli práci, v tom je jeho hlavní výhoda. Nemusí se pokaždé znovu nahrávat nová stránka. Toto chování je daleko blíže tomu, co zná uživatel z klasických desktopových aplikací – a známé pravidlo použitelnosti je držet se toho, co už uživatel zná.
  • AJAX šetří datové přenosy. U klasické webové aplikace se s každým požadavkem musí uživateli posílat celý kód stránky, v němž je nového a důležitého po málu. Naopak s AJAXem se posílá jenom to důležité.

Nevýhody

  • AJAX znemožňuje použití tlačítka Zpět v prohlížeči (protože to se používá jen pro statické stránky). Toto se dá bez váhání označit za největší problém AJAXu. Uživatelé jsou na tlačítko Zpět zvyklí a očekávají od něj určitou funkci. AJAX jim ale v lepším případě vůbec neumožní ho použít, v tom horším použít půjde, ale jeho chování bude naprosto neočekávané – vrátí uživatele na předcházející stránku, nevrátí aplikaci do předcházejícího stavu (a pravděpodobně se jeho stisknutím ztratí uživateli práce, kterou na stránce pomocí AJAXu udělal).

    Kdesi jsem viděl návrh tento problém řešit pomocí XHTML prvku <iframe>, ale přišlo mi to hodně jako drbání se pravou rukou na levém uchu a realizace v aplikaci by pravděpodobně byla dost složitá.

  • Při změnách na stránce pomocí AJAXu se nemění URL v adresním řádku prohlížeče. Proto není možné takto modifikovanou stránku poslat e-mailem nebo uložit do záložek.

    Tento problém řeší AJAXové aplikace tak, že se za URL dosazují identifikátory začínající na # (odkaz dovnitř stránky). Při opětovném vyvolání takového URL ho JavaScript zjistí a uvede stránku do příslušného stavu (tím se dá vyřešit i problém s tlačítkem Zpět). Problém je, že na cílovém počítači musí být dostupný ten JavaScript.

  • Všechno s AJAXem nejde. Nesmíme zapomínat, že AJAX je stále pouze nadstavbou nad stávajícími webovými technologiemi, která se snaží překonat některá jejich omezení. A především protokol HTTP vůbec není vhodný pro aplikace spolupracující intenzivně se serverem – problémem je, že se při každém požadavku musí navázat spojení se serverem, které se po jeho vyřízení ukončí. To aplikaci zpomaluje.

    U AJAXu také není možné, aby server sám kontaktoval uživatele, když je potřeba. To se hodí např. u chatu, kde server obešle počítače účastníků chatu v momentě, kdy se objeví nová zpráva. Sice již byl vytvořen chat s pomocí AJAXu, ale je založen na tom, že se stránka neustále dotazuje serveru (i když pomocí AJAXu, a tedy bez nahrání celé stránky), jestli přibyla nějaká nová zpráva, což není právě ideální.

K čemu tedy ten AJAX je?

Seznam nevýhod výše je sice delší než seznam výhod, ale to vůbec neznamená, že by byl AJAX špatný. Naopak, je to kvalitní technologie, akorát musíme vědět, kdy ji můžeme na webu použít:

  • AJAX se dá nejlépe využít k poskytnutí funkcí, které uživateli urychlí nebo usnadní práci – to jsou různé našeptávače jako Google Suggest nebo zmiňovaný Amazon.com Diamond Search. Je ale potřeba dát si pozor, aby uživatel neměl tendenci používat tlačítko Zpět (to bude mít hlavně, když vyvoláme dojem nahrání nové stránky) nebo nevadilo, že se nemění URL v prohlížeči.
  • AJAX by se neměl používat místo klasických odkazů – to vypadá tak, že např. při kliknutí v menu na jednu z položek se nepřejde na novou stránku, ale pouze se nahraje nový obsah do stávající stránky. Toto řešení přináší problémy s přístupností, SEO i správou obsahu – v podstatě jste v takovém případě nuceni udržovat dvě verze webu a ztrácíte zpětné odkazy, což nepřeváží jedinou výhodu AJAXu (o trochu rychlejší web). Proto v tomto případě lépe poslouží klasické odkazy.

AJAX se dá ve svých možnostech použití přirovnat k Flashi – ten také musíme používat obezřetně a jen ve vymezených případech, jinak nám přinese víc škody než užitku. (A také už je myslím obecně přijatý argument, že by se obsahový web neměl realizovat ve Flashi, protože to přináší mnohé nevýhody. S AJAXem je to podobné.)

Závěrem

Je jasné, že AJAX se podobně jako jiné technologie dostane postupně z fáze eufórie, kdy ho nadšenci používají téměř všude, kde je to možné, do fáze, kdy bude nasazován pouze v případech, ve kterých přinese nejvíce užitku. Myslím si, že o něm nepíšu naposled.

Další informace

Ajax     → RSS/e-mail (stojí to za to?)

Komentáře čtenářů (20)

Máte na tento článek svůj názor? Chtěli byste k němu něco dodat, něco v něm opravit? Budu rád, když se zapojíte do komentářů!

Přejít na komentáře »

Nové články přes RSS/e-mail

Optimics - měření a optimalizace webu

V roce 2009 jsem založil firmu Optimics – měření a optimalizace webu.

Weblog

Pravidelné krátké i delší články pro manažery, majitele a tvůrce webů. Hlavními tématy jsou návrh a řízení webu, zvyšování obchodní účinnosti webu, uživatelská přívětivost (použitelnost), internetový marketing, SEO a informační architektura.

Články by vám měly pomáhat tvořit weby, které plní své cíle – tedy především vydělávají.

Autorem článků je Martin Snížek, webový konzultant. Více o mně »

Krátce (twitter)

→ Co dělat spíš - analýzu použitelnost nebo uživatelské testování? Zajímavý pohled: http://bit.ly/9XpwG0

→ Segmentace návštěvníků jednoduše pomocí Google Analytics, Google Website Optimizer a BTBuckets: http://bit.ly/5AFTNo (via @paveljasek)

→ Reklama vs. direct marketing: http://bit.ly/735RKC (můžete si dosadit třeba i "klasickou komunikaci" a "search marketing").

→ Asynchronní kód GA bych radši nepoužíval. Hrozný bordel v zápisu eventů a custom proměnných za to podle mě nestojí.

Více na Twitteru (RSS)

Vyhledávání

© Martin Snížek 2005-2010

Snizekweb.cz – Martin Snížek o webdesignu. Běží na vlastním CMS.

ISSN 1802-2103

Vybírám z nejlepších článků:

Focus group se nehodí na testování použitelnosti

Focus group se zaměřuje na názory uživatelů, proto se nehodí pro testování použitelnosti. Využití nalezne pouze v prvotní fázi vývoje webu, při specifikaci potřebného obsahu a funkcionality. Pro ověření použitelnosti webu je daleko vhodnější uživatelské testování.