Hlavní navigace

Proč je AJAX k ničemu

Sdílet

Petr Krčmář 8. 12. 2005

Technologie AJAX se stala mezi webovými vývojáři často probíraným tématem. Někteří AJAX vychvalují do nebes, jiní jej zatracují. Na usabilityview­s.com se objevil text Jakoba Nielsena s názvem Why Ajax Sucks (Most of the Time), což můžeme volně přeložit jako Prož je AJAX k ničemu (většinou).

Ve svém textu shrnuje problémy, které AJAX do webu zanáší. Například nabourává základní formu webu, kdy je každá stránka samostatným prvkem a tím zhoršuje integritu stránek a mate uživatele. Díky AJAXu také přestává fungovat obvyklá navígace po URL a posun po stránkách. Navíc je zde problém s tiskem, vyhledáváním a vůbec bezproblémovou implementací AJAXu.

Na konci článku je zmíněno několik oblastí, kam je naopak AJAX implementovatelný velmi dobře. Prostě není dobré jím za každou cenu naplnit celý web. V rozumné míře na několika specifických místech se ale může hodit. Je potřeba se ale nad každým použítím AJAXu zamyslet.

Našli jste v článku chybu?
  • Aktualita je stará, nové názory již nelze přidávat.
  • 8. 12. 2005 21:12

    anonymní
    Článok je síce paródia na starší článok o FRAMES, ale autor tým v žiadnom prípade nechcel povedať, že tie informácie nie sú pravdivé. Skôr len poukázal na to, že web designeri sú ako ovce, ktoré sa opakovane dopúšťajú rovnakých chýb. AJAX je dnes buzzword a tak ho hneď každý web guru musí mať, pretože inak nebude "in". Rovnaké to bolo v čase, keď Netscape vynašiel rámy. Každý tvorca web stránok bez vlastného mozgu to hneď implementoval bez premýšlania či to skutočné má prínos pre koncového užívateľa. Hlavné bolo použiť najnovšie technológie. Dnes sa rámy používajú len v špecifických prípadoch kde majú význam. Ukázalo sa totiž, že prinášajú komplikácie tak do kódu web aplikácii ako aj do mentálneho modelu užívateľa.

    AJAX nakoniec ani nie je ani nová technológia - väčšina vecí sa takto dala robiť dávno predtým ako to celé spopularizoval Google Maps a GMail. Ešte spomeniem, že sú spoločnosti, ktoré sa snažia robiť podobné veci použitím Flashu:

    http://www.laszlosystems.com/
    http://www.macromedia.com/software/flex/

    Celá táto vec ohľadom "rich" web aplikácií však časom vychladne a nájde si svoje špecifiké miesto na webe, kde prinesie naozaj reálny úžitok a nebude obťažovať na každom kroku. Väčšina príkladov použita vyzerá síce skvele (a často za každú cenu inak), ale za ten svet mi je vždy nejasné na čo môžem kliknúť, čo je drag&drop a ako sa to celé vlastne používa.

    Výhodou HTML/XHTML je práve to, že má obmedzené interaktívne možnosti a preto sa užívateľ nestretne na každom webe s úplne odlišnou paradigmou. Netreba sa na každom rohu učiť niečo nové - čo naopak neplatí o desktop programoch, ktorým sa chce AJAX podobať (a pritom konzistnentosť desktopu oproti AJAX vynálezom je na oveľa vyššej úrovni).

    Kto si chce teda dokázať že je JavaScript hacker, tak mu odporúčam plne prejsť na AJAX ešte dnes. Kto myslí na užívateľa viac ako na svoju technickú sebarealizáciu by si to však mal ešte celé dôkladne premyslieť. Niekedy je chytrejšie niečo nové nepoužiť hneď v prvom kole. Nehovoriac o tom, že udržiavať zložitú web aplikáciu napísanú v JavaScripte môže byť nočná mora.
  • 9. 12. 2005 0:13

    junix (neregistrovaný)
    Zda se mi, ze pletes dohromady ruzne veci... AJAX nijak nesouvisi s GUI, drag'n'drop a podobne. Z pohledu uzivatele je v zasade jedno, jestli se po kliknuti na odkaz nacte jina (nebo ta sama) stranka, nebo jestli se posle javascriptovy request. AJAX interaktivni moznosti HTML/XHTML nijak nerozsiruje.

    Netvrdim, ze by se mel pouzivat vsude, ale svoje misto rozhodne ma. Je potreba si uvedomit, ze na webu jsou v zasade 2 druhy site: prezentace a aplikace (jako treti by se mohly oznacit portaly). V aplikacni sfere je AJAX idealni. Odpovida totiz presne schmatu, ze GUI se stahne jednou, a pak mezi klientem a serverem putuji pouze data. Tohle schema se da vhodne doplnit XSL transformaci na strane klienta. Gmail je typickym prikladem, ale treba dost bankovnich aplikaci pouziva stejne schema. Pochybuju, ze by se jednalo o JS hackery. Naopak jsou to aplikace zamerene predevsim na pohodli zakazniku.

    Tvuj omyl o vyznamu potvrzuje i zminka o google maps. Ty vubec AJAX nepouzivaji. Jedna se o interaktivni dotahovani casti mapy - tedy obrazku a ne XML. Nejedna se v podstate ani o requesty na obrazky, protoze JS s img elementy pracuje naprosto transparentne, jako by se ani nedotahovaly.
  • 9. 12. 2005 4:04

    Voidless (neregistrovaný)
    Hm, ano i ne.

    Hypertext (a tedy i web) je zalozeny na strankach jako informacnich jednotkach, ktere jsou mezi sebou provazany odkazy. Proto jsou v prohlizecich od pocatku a porad jeste tlacitka "zpet" a "vpred" - uzivatel je zvykly pohybovat se klikanim na odkazy budto mezi strankami nebo v ramci stranek z jednoho mista na druhe. Pouziti AJAXu tento system meni, protoze strance pridava moznost zmenit svuj (informacni) stav na zaklade uzivatelovy akce. To uz tlacitka zpet a vpred nemohou zachytit (bylo by to docela narocne implementovat) a dochazi k preruseni paradigmatu klik->presun na jine misto (jinou stranku nebo cast textu), coz uzivatele v urcitych pripadech mate.

    Samozrejme souhlasim s tim, ze existuji dva "druhy" stranek (sites) - prezentace, ktere jsou postaveny na hypertextu a aplikace (RIA), ktere se snazi co mozna nejvic priblizit ovladani plnohodnotnych aplikaci. Az do implementace xmlhttprequestu v prohlizecich (a zpopularizovani ;) musely RIA pouzivat obezlicky typu refreshovani (skrytych) ramcu nebo otevirani popup windows.

    Na co chtel autor pravdepodobne poukazat je to, ze (jak uz tu zaznelo) AJAX je buzzword a jako takovy se hlava nehlava pouziva i tam to neni potreba, resp. tam kde je to kontraproduktivni. Napr. kolekce Linux howto se jako typicky zastupce prezentacni site bez javascriptu obejde uplne, na druhou stranu RIA typu Gmail ci Zimbra posunuly pomoci AJAXu a Javascriptu vubec moznosti svych UI zase o kus dal.

    Ano, navigace na strance implementovana pomoci AJAXu je stejne zavrzenihodna jako navigace pomoci flash menu nebo java apletu - pokud ale tvorite RIA, je AJAX dalsi krok evoluce.

    A pak uz jen staci vyresit par drobnosti, treba aby prohlizece u RIA sites pouzivaly vzad/vpred jako undo/redo a aby pri middle-clicku (otevreni do noveho tabu) na odkaz s javascript funkci neoteviraly zbytecne nove taby...
  • 9. 12. 2005 10:30

    Jakub Vrána
    To uz tlacitka zpet a vpred nemohou zachytit (bylo by to docela narocne implementovat)

    Přečetl jste si druhý odkaz v prvním příspěvku tohoto vlákna (na který tedy nepřímo reagujete)? Ten popisuje, že použití tlačítek Zpět a Vpřed a dokonce i odkazování na aktuální stav stránky pomocí URL z adresního řádku nemusí být až takový problém ani u AJAX aplikací.

  • 9. 12. 2005 13:57

    Voidless (neregistrovaný)
    Aj, mea culpa, ten link jsem prehledl.

    Jinak tou narocnosti implementace jsem mel na mysli implementaci na strane browseru.
  • 10. 12. 2005 13:54

    junix (neregistrovaný)
    Myslim, ze jste to vystihl velmi pekne. Doplnil bych pouze jednu vyhradu.

    S rozsiremin aplikacnich site (RIA) se prave i odkazy daji rozdelit na "navigacni" a "funkci". Tady bude asi jadro cele bubliny ktera se kolem AJAXu nafoukla. Je treba si uvedomit, ze toto rozdeleni nesouvisi s rozsirenim AJAXu, ale s rozsirenim RIA a uz s timto rozsirenim padlo to paradigma webu, ktere zminuje clanek ze zpravicce a ktere zminujete v prvnim odstavci. V aplikacich se casto provadeji akce pomoci odkazu s parametry a naopak tvurci aplikaci se snazi branit akcim typu refresh/back/forward. Nacteni casto stejne stranky je pak pouze reakci na nova data.

    Pokud tedy prijmeme toto "zjemneni" a spravne identifikujeme "aplikacni" prvky, pak muze mit AJAX uplatneni i v prezentaci. Samozrejme je treba ho pouzivat s rozmyslem, protoze u prezentaci je nejdulezitejsi, aby "dostatecnym" zpusobem plnily svuj ucel za kazdych okolnosti (pokud mozno ve vsech browserech, pri vypnutem javascriptu/cookies/refereru), coz by mohlo neuvazene pouziti AJAXu nabourat.