JavaScript. Подробное руководство, 6-е издание, стр. 332
Кроме того, учтите, что многие пользователи не доверяют веб-сайтам, использующим cookies или другие механизмы хранения данных на стороне клиента для целей, которые напоминают «слежение». Применяйте механизмы хранения, описываемые в этой главе, для повышения удобства работы с вашим сайтом, но не используйте их как механизм сбора конфиденциальной информации. Если появится слишком большое количество сайтов, дискредитирующих механизмы хранения данных на стороне клиента, пользователи будут отключать их или часто очищать хранилища, что сделает невозможным и их использование, и работу сайтов, опирающихся на их применение.
20.1. Объекты localStorage и sessionStorage
Броузеры, реализующие положения проекта спецификации «Web Storage», определяют в объекте
<b>Window</b><b>localStorage</b><b>sessionStorage</b><b>Storage</b><b>Storage</b><b>localStorage</b><b>sessionStorage</b>Ниже мы подробнее поговорим о сроке хранения и области видимости. А пока рассмотрим несколько примеров. Следующий фрагмент использует свойство
<b>localStorage</b><b>sessionStorage</b><b>var name = localStorage.username; // Получить сохраненное значение.</b><b>name = localStorage["username"]; // Эквивалентная форма обращения, как к массиву</b><b>if (!name) {</b><b> name = prompt("Как вас зовут?"); // Задать пользователю вопрос.</b><b> localStorage.username = name; // Сохранить ответ.</b><b>}</b><b>// Выполнить итерации по всем хранящимся парам имя/значение </b><b>for(var name in localStorage) { // Итерации по всем хранящимся именам</b><b> var value = localStorage[name]; // Получить значение для каждого из них</b><b>}</b>Объекты
<b>Storage</b>Проект спецификации «Web Storage» определяет возможность сохранения структурированных данных (объектов и массивов), а также простых значений и данных встроенных типов, таких как даты, регулярные выражения и даже объекты
<b>File</b><b>// При сохранении числа оно автоматически преобразуется в строку.</b><b>// Не забудьте выполнить обратное преобразование при извлечении из хранилища.</b><b>localStorage.х = 10;</b><b>var х = parseInt(localStorage.х);</b><b>// Преобразовать объект Date в строку при записи и обратно - при чтении</b><b>localStorage.lastRead = (new Date()).toUTCString();</b><b>var lastRead = new Date(Date.parse(localStorage.lastRead));</b><b>// Для кодирования любых простых или структурированных данных удобно </b><b>// использовать формат JS0N</b><b>localStorage.data = JSON.stringify(data); // Закодировать и сохранить </b><b>var data = JSON.parse(localStorage.data); // Извлечь и декодировать.</b>20.1.1. Срок хранения и область видимости
Объекты
<b>localStorage</b><b>sessionStorage</b><b>localStorage</b>Доступность данных в объекте
<b>localStorage</b><a href="http://www.example.com/"><b>http://www.example.com</b></a><b> // Протокол: http: имя хоста: </b><a href="http://www.example.com/"><b>www.example.com</b></a><a href="https://www.example.com/"><b>https://www.example.com</b></a><b> // Другой протокол </b><a href="http://static.example.com/"><b>http://static.example.com</b></a><b> // Другое имя хоста </b><a href="http://www.example.com:8000/"><b>http://www.example.com:8000</b></a><b> // Другой порт</b>Все документы, имеющие одно и то же происхождение, будут совместно использовать одни и те же данные в объекте
<b>localStorage</b><b>localStorage</b>