Zapamatované rezervace
Zarezervujte si pár míst a klikněte na Spustit. Místa jsou zase volná, jako by se nic nestalo: rezervace byly jen v proměnné rezervace a skript při každém spuštění začíná od začátku, stejně jako když návštěvník stránku otevře znovu.
Opravdové kino má rezervace na svém serveru, kde se sejdou rezervace všech návštěvníků: místo, které si zarezervuje jeden, je obsazené pro všechny ostatní. K tomu je potřeba program, který běží na serveru, a to je samostatné téma. Vaše stránka si rezervace pamatuje v prohlížeči, v localStorage, jako v lekci Data ze serveru. Návštěvník tak své rezervace najde, až se vrátí.
Postup znáte: po každé změně pole uložte jako text JSON pomocí JSON.stringify(), a když se stránka otevře, přečtěte ho zpátky pomocí JSON.parse(), pokud je něco uložené:
let rezervace = [];
const ulozeneRezervace = localStorage.getItem("rezervace");
if (ulozeneRezervace !== null) {
rezervace = JSON.parse(ulozeneRezervace);
}zobrazMista() už hledá obsazená místa v rezervace, takže se uložené rezervace ukážou jako obsazená místa, jakmile se načtou. V náhledu je smaže tlačítko Smazat uložená data v konzoli a místa jsou pak zase volná.
Typické chyby:
- Uložíte pole dřív, než do něj přidáte novou rezervaci. Po novém otevření stránky ta nejnovější chybí.
- Uložíte pole bez
JSON.stringify(). Uloží se jako text[object Object]aJSON.parse()při dalším otevření stránky skončí chybouSyntaxError.
Jak psát:
Pokyny
- 1
Po každé rezervaci uložte pole
rezervacedolocalStoragepod klíčemrezervacejako text JSON. - 2
Když se stránka otevře, načtěte uložené rezervace, pokud nějaké jsou. Zarezervujte si pár míst a klikněte na Spustit: zůstanou obsazená.