AJAX je hitem současnosti. Má na web přinést plně interaktivní a uživatelsky přítulné aplikace. So far so good, ale jaká je realita? Pro mě bohužel většinou bolestná…
Na zahřátí doporučuji přečíst Why Ajax Sucks (Most of the Time), což je článek, který strhl pozornost nejen tím, že se jedná o malý podvůdek, ale i svým obsahem. Hlavní problém je (podle McEvoye) filosofický – web je postaven na konceptu stránky a AJAX toto paradigma boří. Stránka už neodpovídá jednotce informace, ale množině informací, ke kterým je potřeba se proklikat. Nabourán je taky koncept URL – není možné zmáčknout Ctrl+D a stránku si přidat do oblíbených, není možné poslat link kamarádovi atd. atd. To je vážný problém.
Co ale vadí mě? Jako příklad si k ruce vezmu Centrumácký mail. Celkově na něj mám velmi pozitivní názor – myslím, že je to jedna z nejlepších aplikací běžících v prohlížeči, jaké jsem kdy viděl. Velmi dobře se ovládá, rozhraní je navržené s citem, funkčnost je bezproblémová, běhá to celkem svižně i na mém EDGE připojení atd. Při práci mi ale časem začalo vadit pár věcí, které jsou způsobeny AJAXovou implementací.
Zaprvé nefunguje otevírání v nových záložkách prohlížeče. Na pomalém připojení je otevírání v záložkách jedna z největších úspor času, protože typicky brouzdám tak, že čtu hlavní stránku, odkazy si otevírám v dalších tabech a přepnu se na ně, až jsou plně nahrané. V Centrum mailu nemůžu. Nebo co když potřebuji odpovídat na nějaký mail, který bych současně chtěl mít otevřený v druhém okně nebo v záložce? Nemůžu. Zvlášť tento druhý případ značně zhoršuje použitelnost.
Tlačítko Zpět je případem samo o sobě. Uživatel je zcela zničen. Zmáčkne zpět a místo na předchozí obrazovku se dostane zcela mimo aplikaci – nejen na nesmyslnou stránku, ale úplně pryč! Je katastrofou, když tlačítko zpět znamená totéž co příkaz „odhlásit se“ (uživatel sice odhlášen není, ale cítí se tak). Určité metody na řešení tlačítka Zpět existují (Ajax: tlačítko zpět a záložky, Tlačítko Zpět, bookmarky atd. v AJAXu), ale stále se jedná o problematickou oblast.
A jaké přináší AJAXová implementace Centrum mailu výhody? Abych byl upřímný, žádné zásadní nevidím. Je pravdou, že rozhraní působí „moderně“ a že moje uživatelská zkušenost je o něco bohatší. Ale drag&drop není výsadou AJAXu, stejně jako další vymoženosti jako přepínání pohledů apod. Co mi tedy tak zpříjemňuje život? Rozhraní je trochu svižnější, to je ale současně kompenzováno nemožností otvírat nepřečtené zprávy do nových tabů, takže tady zase čas ztrácím. Jednoduše řečeno, AJAXová implementace mi žádné velké výhody nepřinesla, zatímco třeba nefunkční tlačítko zpět je velkým klackem pod mé nohy. A to ještě webmail spadá do kategorie webových aplikací, kde se AJAX ještě relativně hodně hodí. Přeci jen má blíže k „aplikaci“ v tradičním slova smyslu než k „webové stránce“. I přesto jsem s AJAXem na Centru nespokojený. Divné…
Ale znám ještě jeden brutálnější příklad. Častá argumentace ve prospěch AJAXu zní, že je potřeba ho používat s rozumem a že když se použije decentně, je vše v pořádku. Tak si vezměme Google.com a jeho úžasný Google Suggest. Všeobecně panuje názor, že právě to je vhodné použití AJAXu na jinak „normální“ stránce. Budiž. Píšu „Visual Studio Tools“, mačkám enter a čekám, že se mi vyhledá dotaz „Visual Studio Tools“. Zvednu hlavu od klávesnice a koukám, že mi Google vyhledal „Vistual Studio Tools for Office“, což jsem ale vůbec nechtěl! Postavím se za slovo „Visual“, označím celý zbytek textového pole a hle, Googel Suggest mi zbytek automaticky vymaže, což je neuvěřitelně stupidní chování. Jak si Google může dovolit bez upozornění mazat můj text? Proč uživateli tak výrazně komplikuje práci?
Ne, opravdu nevidím důvod, proč se dnes AJAXem zabývat. Jeho vývoj je těžký, podpora prohlížečů daleká dokonalosti a mí uživatelé budou naštvaní. K čemu AJAX?
Super, uživatelská zkušenost / testování je nejen pro AJAX like aplikace je víc jak nutná. Souhlasím s tezí, že někdy AJAX nepřináší zdaleka tolik uživatelské přívětivosti, zejména ve srovnání s časem a náklady obětovanými :) Sám sem si tak v jednom projektu naběhl… Ale se závěrem článku dost nesouhlasím.. Je dost věcí, které se bez AJAXu řeší příšerně… např. TextBox suggest, závyslé comboBoxy, mapy, drag and drop (na to out of bound call potřebuješ, ne že ne, jak bys persistoval stav?…)