Ukládání objektů JavaScript v HTML5 localStorage a sessionStorage

JavaScript

Práce s objekty ve webovém úložišti

Při práci s HTML5 localStorage nebo sessionStorage se vývojáři často setkávají s problémy při pokusu o uložení objektů JavaScriptu. Na rozdíl od primitivních datových typů a polí se zdá, že objekty jsou převedeny na řetězce, což může vést ke zmatkům a neočekávaným výsledkům.

Pochopení toho, jak správně ukládat a načítat objekty pomocí webového úložiště, je pro mnoho webových aplikací zásadní. Tato příručka prozkoumá, proč se objekty převádějí na řetězce, a poskytne jednoduché řešení, jak zajistit správné uložení a načtení objektů.

Příkaz Popis
JSON.stringify() Převede objekt nebo hodnotu JavaScriptu na řetězec JSON, což umožňuje uložení v localStorage nebo sessionStorage.
localStorage.setItem() Ukládá pár klíč–hodnota do objektu localStorage, což umožňuje, aby data zůstala zachována v relacích prohlížeče.
localStorage.getItem() Načte hodnotu přidruženou k danému klíči z localStorage.
JSON.parse() Analyzuje řetězec JSON a převádí jej zpět na objekt JavaScriptu, což umožňuje načítání složitých datových struktur.
sessionStorage.setItem() Ukládá pár klíč–hodnota do objektu sessionStorage, což umožňuje, aby data zůstala zachována po dobu trvání relace stránky.
sessionStorage.getItem() Načte hodnotu přidruženou k danému klíči ze sessionStorage.

Efektivní ukládání a načítání objektů ve webovém úložišti

v JavaScriptu a jsou objekty webového úložiště, které vám umožňují ukládat páry klíč–hodnota v prohlížeči. Tato řešení úložiště však podporují pouze řetězce, což znamená, že pokus o přímé uložení objektu JavaScript povede k převedení objektu na reprezentaci řetězce, jako je . Chcete-li efektivně ukládat objekty, musíte je převést na řetězec JSON pomocí JSON.stringify(). Tato metoda vezme objekt JavaScriptu a vrátí řetězec JSON, který lze uložit nebo .

Chcete-li načíst uložený objekt, musíte převést řetězec JSON zpět na objekt JavaScript pomocí . Tato metoda přebírá řetězec JSON a vrací odpovídající objekt JavaScriptu. Skripty poskytnuté ve výše uvedených příkladech demonstrují tento proces. Nejprve je vytvořen objekt a převeden na řetězec JSON pomocí před uložením do použitím localStorage.setItem(). K načtení objektu je načten řetězec JSON použitím a poté analyzovat zpět do objektu JavaScript pomocí .

Ukládání a načítání objektů JavaScriptu v localStorage

Použití JavaScriptu a JSON pro localStorage

// Create an object
var testObject = {'one': 1, 'two': 2, 'three': 3};

// Convert the object to a JSON string and store it in localStorage
localStorage.setItem('testObject', JSON.stringify(testObject));

// Retrieve the JSON string from localStorage and convert it back to an object
var retrievedObject = JSON.parse(localStorage.getItem('testObject'));

// Verify the type and value of the retrieved object
console.log('typeof retrievedObject: ' + typeof retrievedObject);
console.log('Value of retrievedObject: ', retrievedObject);

// Output should be:
// typeof retrievedObject: object
// Value of retrievedObject: { one: 1, two: 2, three: 3 }

Ukládání a načítání objektů JavaScriptu v sessionStorage

Použití JavaScriptu a JSON pro sessionStorage

// Create an object
var testObject = {'one': 1, 'two': 2, 'three': 3};

// Convert the object to a JSON string and store it in sessionStorage
sessionStorage.setItem('testObject', JSON.stringify(testObject));

// Retrieve the JSON string from sessionStorage and convert it back to an object
var retrievedObject = JSON.parse(sessionStorage.getItem('testObject'));

// Verify the type and value of the retrieved object
console.log('typeof retrievedObject: ' + typeof retrievedObject);
console.log('Value of retrievedObject: ', retrievedObject);

// Output should be:
// typeof retrievedObject: object
// Value of retrievedObject: { one: 1, two: 2, three: 3 }

Pokročilé techniky pro webové úložiště

Při použití HTML5 a , vývojáři často potřebují ukládat složitější data než jen řetězce. Zatímco serializace a deserializace JSON jsou účinné pro základní objekty, pokročilejší scénáře mohou vyžadovat další úvahy. Pokud například pracujete s hluboce vnořenými objekty nebo objekty obsahujícími metody, potřebujete sofistikovanější přístup. Jednou z běžných technik je použití knihovny, jako je např nebo circular-json pro zpracování cyklických odkazů a složitějších objektových struktur.

Tyto knihovny rozšiřují standard a metody pro podporu serializace a deserializace objektů s cyklickými odkazy, umožňující robustnější řešení pro ukládání objektů ve webovém úložišti. Dalším aspektem je komprese dat. Pro velké objekty můžete použít knihovny jako pro komprimaci dat před jejich uložením localStorage nebo , což snižuje množství použitého prostoru. To může být užitečné zejména pro aplikace, které potřebují ukládat značné množství dat na straně klienta.

  1. Mohu uložit funkce do nebo ?
  2. Ne, funkce nelze ukládat přímo do webového úložiště. Kód funkce můžete uložit jako řetězec a použít jej znovu vytvořit, ale obecně se to nedoporučuje kvůli bezpečnostním rizikům.
  3. Jak zpracuji kruhové odkazy v objektech?
  4. Používejte knihovny jako nebo které jsou navrženy pro zpracování cyklických odkazů v objektech JavaScriptu.
  5. K čemu je limit úložiště ?
  6. Limit úložiště pro je obvykle kolem 5 MB, ale může se lišit mezi prohlížeči.
  7. Mohu data před uložením zkomprimovat?
  8. Ano, můžete použít knihovny jako pro komprimaci dat před jejich uložením nebo .
  9. Jak uložím pole objektů?
  10. Převeďte pole na řetězec JSON pomocí před uložením nebo .
  11. Je bezpečné ukládat citlivá data ?
  12. Ne, ukládat citlivá data není bezpečné protože je přístupný prostřednictvím JavaScriptu a v případě napadení webu může být kompromitován.
  13. Mohu použít v různých doménách?
  14. Ne, je omezeno na stejný původ, což znamená, že k němu nelze přistupovat z různých domén.
  15. Co se stane, když uživatel vymaže data svého prohlížeče?
  16. Všechna data uložená v a budou odstraněny, pokud uživatel vymaže data svého prohlížeče.

Efektivní ukládání a načítání objektů ve webovém úložišti HTML5 vyžaduje převod objektů na řetězce JSON pomocí a poté je analyzovat zpět s . Tato metoda zajišťuje, že data zůstanou nedotčená a použitelná v různých relacích prohlížeče. Pochopením a využitím těchto technik mohou vývojáři využít localStorage a sessionStorage pro složitější úlohy správy dat a zlepšit funkčnost a výkon svých webových aplikací.