10 Модуль - Библиотеки. Шаблонизация. JSON. WebStorage -- 04 Хранение информации на клиенте Flashcards
Основная проблема веб-приложений
при использовании приложения и закрытии, его состояние будет сброшено при следующем посещении. Если вы закрываете приложение на рабочем столе и снова открываете его, последнее состояние восстанавливается.
Классический способ хранения информации на клиенте это использовать
куки-файл размещенный на компьютере пользователя. Куки это текстовые строки списка пар ключ=значение разделенные точкой с запятой. Обычно куки приходят от сервера и позволяют хранить простые строчные данные.
Но у куки есть несколько ограничений.
- Они добавляются к каждому запросу на сервер, что может бы излишне
- Куки позволяют хранить всего до 4кб данных, что довольно мало
- Поскольку куки используются для отслеживания поведения людей в серфинге, пользователи часто отключают их, а сайты просят каждый раз нужно ли их устанавливать
- Используя куки, довольно проблематично отслеживать две или более транзакций на одном и том же сайте, что может происходить одновременно в разных вкладках
Web Storage API — включает в себя
локальное хранилище (localStorage) и хранилище сеансов (sessionStorage). Данные в веб-хранилище, в отличие от куки, сохраняются даже при закрытии браузера или выключении компьютера.
sessionStorage — используется для
добавления данных в хранилище сеансов, и данные этого хранилища будут доступны для любой страницы с того же сайта, открытого в этом окне, т.е. сессии, и как только окно будет закрыто, сеанс будет завершен, а хранилище сеансов очищено.
localStorage (локальное хранилище) — позволяет хранить данные
без истечения срока действия в формате пар ключ:значение на компьютере пользователя и читать их, когда пользователь снова вернется на страницу.
В localStorage не хранят
методы объектов или функции, только данные.
Сохранение localStorage метод
Используя метод setItem можно записать пару ключ:значение.
localStorage.setItem(key, value)
Одним из неприятных недостатков локального хранилища является то,
что вы можете хранить только строки. Это означает, что когда есть объект, он не будет сохранен правильно. Это можно обойти, используя метод JSON.stringify, преобразовав объект в строку.
Чтение данных из локального хранилища
localStorage.getItem(key)
Для того чтобы удалить пару, необходимо вызвать метод и передать ему ключ.
localStorage.removeItem(key)
Если вы хотите полностью очистить хранилище, вызовите метод
localStorage.clear();