Развитие веб -приложений привело к более широкому использованию клиентского хранилища, и существуют различные способы реализации клиентского хранилища. Самым простым и наиболее совместимым решением является Cookie, но как настоящее клиентское хранилище Cookie имеет множество фатальных недостатков. Кроме того, userData Behavior также можно использовать в IE6 и выше, globalStorage можно использовать в Firefox, а Flash Local Storage можно использовать в средах с плагинами Flash. Однако все эти методы имеют ограничения совместимости, поэтому на самом деле они не являются таковыми. идеален в использовании. В ответ на вышеописанную ситуацию HTML5 предоставляет более идеальное решение: если вам нужно хранить сложные данные, вы можете использовать веб-базу данных , а вы можете использовать SQL как клиентскую программу (но стандарт веб-базы данных в настоящее время находится в тупике, и в настоящее время реализованные браузеры очень ограничены); если вам нужно хранить данные, которые можно решить просто с помощью пар ключ/значение, вы можете использовать Web Storage . В этой статье в основном представлена конкретная ситуация с веб-хранилищем с различных аспектов.
sessionStorage и localStorage
Веб-хранилище фактически состоит из двух частей: sessionStorage и localStorage.
sessionStorage используется для локального хранения данных в сеансе. Доступ к этим данным возможен только для страниц в том же сеансе, и данные уничтожаются по завершении сеанса. Поэтому sessionStorage — это не постоянное локальное хранилище, а только хранилище уровня сеанса.
localStorage используется для постоянного локального хранилища, если данные не будут удалены активно, срок их действия никогда не истечет.
Почему стоит выбрать веб-хранилище вместо файлов cookie?
По сравнению с файлами cookie веб-хранилище имеет множество преимуществ, которые суммируются следующим образом:
1. Больше места для хранения: каждое независимое пространство для хранения в IE8 составляет 10 МБ. Реализация других браузеров немного отличается, но она намного больше, чем у Cookie.
2. Сохраненный контент не будет отправлен на сервер: если установлен файл cookie, содержимое файла cookie будет отправлено на сервер вместе с запросом, что является пустой тратой полосы пропускания для локально хранящихся данных. Данные в веб-хранилище существуют только локально и никак не взаимодействуют с сервером.
3. Более богатые и простые в использовании интерфейсы. Веб-хранилище предоставляет более богатый набор интерфейсов, упрощающих операции с данными.
4. Независимое пространство для хранения. Каждый домен (включая субдомены) имеет независимое пространство для хранения. Каждое пространство для хранения полностью независимо, поэтому путаницы данных не будет.
Как совместимость?
Следующие различные тесты были проведены в следующих браузерах: IE8, Firefox3.6, Chrome5, Safari4, Opera10. Оказывается, реализация API в каждом браузере в основном одинакова, и есть определенные проблемы совместимости, но их нет. влияют на нормальное использование.
тест sessionStorage
В этом разделе в основном тестируются некоторые функции sessionStorage. Основное внимание в тесте уделяется определению сеанса каждым браузером и междоменной ситуации. Метод проверки очень прост: откройте страницу A , запишите текущие данные сеанса на странице A, а затем используйте различные методы для входа на страницу B через ссылки или кнопки на странице A. Если страница B может получить доступ к данным на странице A. Это означает, что что браузер считает текущие страницы A и B одним и тем же сеансом. Конкретные результаты теста показаны в Таблице 1:
Таблица 1. Тест совместимости sessionStorage
Как видно из таблицы 1, по соображениям безопасности доступ к данным сеанса не разрешен между доменами во всех браузерах, включая перекрестные поддомены. В других аспектах реализация в основных браузерах относительно последовательна.