Можностей, предоставляемых веб-разработчикам


alert( sessionStorage.length ); // отображается “2"



Pdf көрінісі
бет220/232
Дата06.01.2022
өлшемі5,47 Mb.
#12231
1   ...   216   217   218   219   220   221   222   223   ...   232
alert( sessionStorage.length ); // отображается “2"
sessionStorage.removeItem('bruce');
alert( sessionStorage.length ); // отображается “1"
sessionStorage.clear();
alert( sessionStorage.length ); // отображается “0"
Как сохранять не только строки
Обойти проблему «строкофикации» объектов можно с помощью JSON. Так как в стандар-
те JSON для представления объектов JavaScript используется обычный текст, его можно 
применять для записи объектов в хранилище и для преобразования сохраненных данных 


196  •  Глава 6
обратно в объекты. Для этого понадобится добавить оболочки вокруг методов 
set
 и 
get

но, в зависимости от вашего приложения, это может и не создать вовсе никаких проблем.
ПРИМЕЧАНИЕ
JSON (JavaScript Object Notation) — это открытый стандарт представления данных в текстовом 
виде  Спецификация, которую можно найти на сайте http://json org, настолько проста, что полно-
стью помещается на обороте визитки! 
Все новейшие браузеры (ночные сборки и финальные релизы) поддерживают кодирование 
JSON с помощью методов 
JSON.parse
 и 
JSON.stringify
. Для браузеров без поддержки 
JSON можно использовать библиотеку JSON Дугласа Крокфорда (загрузите ее с веб-сайта 
https://github com/douglascrockford/JSON-js
).
Для создания оболочки методов 
setItem
 и 
getItem
 можно использовать такой код:
var videoDetails = {
    author: 'bruce',
    description: 'how to leverage synergies',
    rating: '-2'
};
sessionStorage.setItem('videoDetails', JSON.
stringify(videoDetails) );
// позже, например, при повторной загрузке 
¬ страницы можно извлечь
¬ сохраненные данные
¬ stored data
var videoDetails = JSON.parse(sessionStorage.getItem
¬ ('videoDetails'));
Как говорилось в разделе, посвященном обзору API, если в объекте хранения запрашивае-
мый ключ отсутствует, то метод возвращает значение 
null
. Это не проблема для стандарт-
ных парсеров JSON, так как 
JSON.parse(null)
 вполне предсказуемо возвращает значение 
null
. Однако если передать 
null
 коду на JavaScript от Дугласа Крокфорда, это приведет 
к ошибке. Следовательно, если вам известно, что будет использоваться библиотека Дугласа 
для JSON на JavaScript, то заранее предусмотрите обработку ошибки, добавив такой код:
var videoDetails = JSON.parse(sessionStorage.getItem
¬ ('videoDetails') || 'null');
Так вы гарантируете, что если метод 
getItem
 вернет значение 
null
, то дальше вы переда-
дите версию этого значения, подготовленную для JSON, и парсер JSON на основе JavaScript 
отработает без ошибок.


Достарыңызбен бөлісу:
1   ...   216   217   218   219   220   221   222   223   ...   232




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет