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] a JSON.parse() při dalším otevření stránky skončí chybou SyntaxError.

Pokyny

  1. Po každé rezervaci uložte pole rezervace do localStorage pod klíčem rezervace jako 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á.