Komentáře k článku

Single Page Apps a řešení problémů s historií

S nástupem AJAXu a moderních prohlížečů se schopnostmi offline práce a s pokročilými JS API se stávají jednostránkové webové aplikace (single-page apps), tedy takové, kde je veškerá funkcionalita umístěna v jedné stránce a se serverem se pracuje jen prostřednictvím datového rozhraní, stále populárnější. Jejich použití ale přináší některé problémy.

Zpět na článek

14 komentářů k článku Single Page Apps a řešení problémů s historií:

  1. karf

    Tlačítko zpět

    Podotknul bych, že tlačítko zpět není analogické funkci undo (jak je naznačeno v tabulce) a neplatí, že by nebylo používané v desktopových aplikacích. Používá se a plní stejnou roli jako u webu – změna pohledu (namátkou Explorer/Sala­mander, Eclipse/Netbeans, Thunderbird a další). Zásadní rozdíl mezi zpět a undo je ten, že undo vrací změnu dat provedenou uživatelem, což by tlačítko zpět dělat nemělo.

    Další otázkou je, které změny stavu se mají ukládat do historie a které nikoliv. Příklad s lightboxem považuji za diskutabilní, pak bychom mohli ukládat i různé popovery a skončili bychom u stavování vysouvacích menu.

    1. pas

      Re: Tlačítko zpět

      Tak, tak. Dobrým zdrojem inspirace je i třeba Android, kde tlačítko Back funguje občas jako historie a občas jako up/exit (jít ve struktuře aplikace o úroveň výš) a je to podle mě většinou naprosto intuitivní.

    2. Martin MalýAutor příspěvku

      Re: Tlačítko zpět

      Tlačítko „Zpět“ v prohlížeči není změna pohledu, jeho význam je širší a spíš stavový než pohledový. To, co označujete za „Zpět“ u přepínače pohledů má s tlačítkem Zpět (a jeho intuitivním významem) společný většinou pouze tvar šipky doleva… ;)

      Poznámka o vracení změn je dobrá, ovšem jsou i na webu situace, kdy uživatel věří, že tlačítko Zpět vrátí změny (a je frustrován, že se tak nestalo…)

      Vaše argumentace „… skončili bychom u stavování vysouvacích menu“ je známý argumentační trik zvaný „šikmá plocha“. Ale pokud ji vezmu vážně, tak: Stran toho, které změny „stavovat“ a které ne, by měl mít hlavní slovo návrhář UI, odborník na použitelnost, protože to je právě otázka, která do použitelnosti spadá a extrémismus jakýmkoli směrem („stavovat vše“ vs „nestavovat nic“) je jen na škodu. Takže opět: Použít hlavu!

      1. karf

        Re: Tlačítko zpět

        Není mým záměrem někoho o něčem urputně přesvědčovat, žádný agrumentační trik jsem použít nechtěl, hledáte v tom zas něco, co v tom není. Moje poznámka o lightboxu rozhodně nebyla myšlena jako jednoznačný argument pro nebo proti, psal jsem, že to je diskutabilní. Přechod od lightboxu k jiným podobným prvkům není ostrý, často se použije podobná komponenta na různé věci, a to, jestli ukládat nebo neukládat do historie, není vždy jednoznačné. Zatím neexistuje nic jako průmyslový standard, očekávání uživatelů se může v čase měnit atd. Samozřejmě je to otázka použitelnosti, čili v závěru se shodneme.

        Ještě k tomu prvnímu odstavci – změna stavu/změna pohledu – přiznávám, že mi rozdíl asi není úplně jasný, použil jsem slovo pohled spíš ve smyslu „stav UI“. Nevím, jak ten rozdíl intuitivně vnímají normální uživatelé, možná mám jen já nějakou špatnou intuici.

        1. Martin MalýAutor příspěvku

          Re: Tlačítko zpět

          Shodneme se téměř úplně. Tím upozorněním na argumentační trik jsem Vám nechtěl podsouvat nějaké zlé úmysly, jen upozornit na častou chybu v uvažování, kdy se naznačí řetězec důsledků a příčin, vedoucí ke katastrofě („dnes jim povolíme vlastnit majetek, zítra ho budou chtít bránit majetek, pozítří si koupí pistole a pak propukne anarchie…“) – a říká se tomu „argumentační triky“; terminus technicus. Vy jste naznačil takovou šikmou plochu, vedoucí k bezhlavému stavování čehokoli kdekoli, jenže k tomu nemusí nezbytně dojít. A zase jsme u otázky použitelnosti, takže shoda.

          U toho webu to trošku rozšířím: intuitivní vnímání tlačítka Zpět souvisí s vnímáním webu coby cesty: „vrátím se na místo, kde jsem už byl“, „vrátím se tam, odkud jsem vyšel“, „jsem ve slepé uličce, musím couvnout“. Smysl je cosi mezi „kliknul jsem na špatný odkaz, chci vrátit akci“ a „vraťme se k předchozímu stavu“. Přepínání pohledů je něco jiného – tam jsou stále stejná data, jen jinak prezentovaná. Pro uživatele je často „Zpět“ ekvivalentem „zavřít tento web a vrátit se na výchozí místo“. Analogie se těžko hledá, ale „přepnutí pohledu“ to není, v něm chybí ten moment „návratu zpět“.

          1. karf

            Re: Tlačítko zpět

            Hm, no já v tom pořád nevidím nějaký zásadní rozdíl, alespoň v aplikacích, které mám na mysli, se to chová taky jako cesta nebo „návrat tam, kde jsem už byl“. Ale to je jedno, asi jde jen o jiné úhly pohledu na stejnou věc.

      2. Opravdový odborník :-)

        Re: Tlačítko zpět

        Ad „ovšem jsou i na webu situace, kdy uživatel věří, že tlačítko Zpět vrátí změny (a je frustrován, že se tak nestalo…)“

        Je dobré se podívat jak se tahle tlačítka jmenují v anglicky lokalizovaných prohlížečích: forward a backward. A skutečně znamenají změnu pohledu, skok na předchozí umístění. Zatímco vracení operací jen undo a redo. V češtině to trochu splývá protože v obou případech je to zpět — ale tím bychom se neměli nechat zmást, je to jen věc lokalizace, význam se nemění.

        Ano, očekávání uživatele někdy neodpovídají realitě, ale to neznamená, že by se realita měla měnit.

        1. Martin MalýAutor příspěvku

          Re: Tlačítko zpět

          O tom není sporu. I proto jsem to dal do závorky – ano, jejich očekávání neodpovídá realitě, a v tomto případě ani není na místě realitu měnit. byla to jen poznámka k občasným povzdechům některých uživatelů: „Omylem jsem změnil… a když jsem dal zpět, tak to nefungovalo!“ – „Jak nefungovalo?“ – „No ty změny tam zůstaly!“

    3. František Kučera

      Re: Tlačítko zpět

      jj, ta mapovací tabulka se mi taky moc nezdá. Tlačítko „undo“ bývá i na webu (běžné u WYSIWYG editorů, ale i jinde) a tlačítko „zpět“ bývá i v těch desktopových aplikacích. „URL v rámci aplikace“ u desktopových přeci taky je — viz parametry na příkazovém řádku — např. prohlížeči obrázků zadám jako parametr, do které složky má skočit, nebo editoru přímo cestu k souboru, někdy jde zadat i stránku, nebo jiné upřesnění místa.

  2. LV

    Re: Single Page Apps a řešení problémů s historií

    Nevim, jestli je tento clanek spravne zarazovat do serialu o HTML5, jelikoz popisovane techniky se tykaji i predchozich verzi HTML. Kazdopadne je to pekne cteni, dekuji.

    1. trulant

      Re: o čem je ten článek?

      clanek je o webovych aplikacich, o posunu od vicestrankovych k jednostrankovym, o problemech co to prinasi a o tom, jak resit ten nejvetsi problem co maji, s historii v prohlizeci. myslenka je ta, ze pokud neco takoveho pises, tak se ti tyhle informace muzou hodit.

  3. Jakub Vrána

    history.pushState

    Metoda history.pushState funguje s kompletní cestou (tedy na stejné doméně). Nevím, odkud jsi čerpal, když tvrdíš, že může měnit jen část za otazníkem (a tedy i mřižkou). Jak Firefox tak Chrome (které tuto metodu jako jediné pokud vím podporují) to zvládají bez problémů.

    1. Martin MalýAutor příspěvku

      Re: history.pushState

      Zkoušel jsem to včera ve FF4, hlásilo „Security error“, ale je možné, že tam byl jiný problém. Ještě ověřím.

Napsat komentář

Tato diskuse je již příliš stará, pravděpodobně již vám nikdo neodpoví. Pokud se chcete na něco zeptat, použijte diskusní server Devel.cz

Zdroj: https://www.zdrojak.cz/?p=3499