Ukládání dat do cookie
Na mobilním telefonu se běžně stává, že vypadne připojení k Internetu, a při ukládání dat na server bychom s tím měli počítat. Pokud data ukládáme běžným formulářem obnovujícím stránku, tak by se o to měl postarat prohlížeč – zobrazí informaci o nedostupnosti připojení a při jejím obnovení se data pošlou znovu. Pokud ale data odesíláme AJAXem, tak se o to musíme postarat sami.
Možné řešení spočívá v tom, že si data na klientu uložíme do cookie, která se při dalším úspěšném požadavku automaticky pošle na server. S knihovnou js-cookie můžeme cookie nastavit pomocí Cookies.set('save', data)
. Po uložení dat v cookie ji na straně serveru smažeme: setcookie("save", "")
. Do cookie lze typicky uložit jen 4 KB dat, takže pro větší objemy dat se toto řešení bohužel nehodí.
Pokud je uživatel k aplikaci přihlášen a chceme, aby se změna dat projevila na všech jeho zařízeních (případně jde o změnu, která ovlivňuje i ostatní uživatele), tak je vhodné na server ihned odeslat požadavek pro uložení dat v cookie. Jen pokud se nepovede, tak data v cookie zůstanou a uloží se při dalším požadavku na server. Uživatele je v tom případě vhodné informovat o tom, že data ještě nejsou na straně serveru uložena.
Pokud se uložení dat má projevit jen v současném prohlížeči uživatele a nikde jinde (např. košík nepřihlášeného uživatele), tak extra požadavek na server ani posílat nemusíme a stačí počkat na přenos dat při dalším normálním požadavku.
A pokud stránku sestavujeme až na klientu, tak data na server ani nemusíme posílat a místo do cookie je můžeme uložit do localStorage.
Diskuse
Jan Barášek:
Nákupní košíky ukládám obvykle do localStorage, která ovšem na některých telefonech s Androidem nefunguje, proto do košíku nelze nic uložit.
S tím by se mělo počítat, takže ukládám zálohu ještě do session.
Jednou jsem dostal dokonce od zákazníka požadavek, aby to fJungovalo i s vypnutým cookies - takže v některých případech předávám obsah košíku přímo v URL, což při pohybu po webu není ideální. Co si o tom myslíte vy?

Dan Novotný:
Jakube ty vaše články z poslední doby /rok - dva / jsou něco příšerného, se slzou vzpomínám kdy Vás to bavilo a články měly smysl.paranoiq:
Dane, ty vaše komentáře z poslední doby / rok - dva / jsou něco příšerného, se slzou vzpomínám kdy Vás bavilo články číst a komentáře měly smysl.Pavel Kravčík:
Paranoiqu, ty vaše komentáře z poslední doby / rok - dva / jsou něco příšerného, se slzou vzpomínám kdy Vás bavilo články číst a komentáře měly smysl.Diskuse je zrušena z důvodu spamu.

