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.
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.
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í.
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á 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é.)
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.
→ Ajax → RSS/e-mail (stojí to za to?)
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ářů!
V roce 2009 jsem založil firmu Optimics – měření a optimalizace webu.
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ě »
→ 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í.
© Martin Snížek 2005-2010
Snizekweb.cz – Martin Snížek o webdesignu. Běží na vlastním CMS.
ISSN 1802-2103
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í.