Когда очищается localStorage?

113

Как долго я могу ожидать, что данные будут храниться в localStorage. Как долго будут сохраняться данные localStorage среднего пользователя? Если пользователь не очистит его, продлится ли он до переустановки браузера?

Согласовано ли это во всех браузерах?

Bnicholas
источник

Ответы:

101

Проект W3C говорит об этом

Пользовательские агенты должны удалять данные из локальных хранилищ только из соображений безопасности или по запросу пользователя. Пользовательские агенты всегда должны избегать удаления данных во время работы сценария, который может получить доступ к этим данным.

Поэтому, если браузеры следуют спецификации, она должна сохраняться до тех пор, пока пользователь не удалит ее во всех браузерах, я не нашел ни одного, что было бы удалено ни в одном из моих проектов.

Хорошая статья для чтения также http://ejohn.org/blog/dom-storage/

Доминик Грин
источник
«Запрошено пользователем» = когда пользователь очищает данные. См. Stevesouders.com/blog/2012/09/10/clearing-browser-data, чтобы узнать об очистке браузера и о том, как это сделать.
Жюльен Кронегг,
При обновлении хрома можно очистить локальное хранилище. Это случилось со мной дважды за последние 12 месяцев. Если данные важны, включите и поощряйте пользователя загружать соответствующие данные в файл, чтобы его можно было переустановить, если это произойдет.
user2677034
119

localStorage также известен как веб-хранилище, хранилище HTML5 и хранилище DOM (все это означает одно и то же).

localStorage похож на sessionStorage, за исключением того, что данные, хранящиеся в localStorage, не имеют срока действия, а данные, хранящиеся в sessionStorage, очищаются при завершении сеанса просмотра (т.е. когда закрывается вкладка браузера / браузера). Хранилище сеансов используется гораздо реже, чем localStorage, и существует только в пределах текущей вкладки браузера - даже две вкладки, загруженные с одного и того же веб-сайта, будут иметь разные данные sessionStorage. Данные sessionStorage сохраняются при обновлении страницы, но не при закрытии / открытии вкладки. С другой стороны, данные LocalStorage используются всеми вкладками и окнами из одного источника. Срок действия данных LocalStorage не истекает; он остается после перезапуска браузера и даже после перезагрузки ОС. Источник

localStorage доступен во всех браузерах, но постоянство реализовано не всегда. В частности, localStorage может быть очищен действием пользователя и может быть очищен непреднамеренно (кто мог подумать, что очистка всех файлов cookie также очищает localStorage?).

В Firefox localStorage очищается, когда выполняются эти три условия: (а) пользователь очищает недавнюю историю, (б) файлы cookie выбраны для очистки, (в) временной диапазон - «Все»

В Chrome localStorage очищается, когда выполняются следующие условия: (а) очистить данные просмотра, (б) выбраны «файлы cookie и другие данные сайта», (в) временной интервал - «с начала времени». В Chrome теперь также можно удалить localStorage для одного конкретного сайта .

В IE, чтобы очистить localStorage: (a) Инструменты - Свойства обозревателя, (b) вкладка General, (c) удалить историю просмотров при выходе, (d) убедиться, что «Файлы cookie и данные веб-сайтов» (или «временные файлы Интернета и файлы веб-сайтов» ") выбрано, (д) ​​рассмотрите возможность снятия флажка" Сохранить данные избранного веб-сайта "вверху

В Safari: (a) Щелкните Safari (b) Настройки (c) Выберите вкладку Конфиденциальность (d) Щелкните Удалить все данные веб-сайта (e) Щелкните Удалить сейчас

Opera: Несмотря на отличные статьи о localStorage с сайта Opera, я еще не нашел четких (непрограммных) инструкций для пользователей о том, как очистить localStorage. Если кто-нибудь найдет, пожалуйста, оставьте комментарий под этим ответом со ссылочной ссылкой.


На сайте разработчиков Opera есть отличный обзор localStorage:

Текущий способ хранения данных на стороне клиента - файлы cookie - представляет собой проблему:

  • Небольшой размер: файлы cookie обычно имеют максимальный размер около 4 КБ, что не очень хорошо для хранения любых сложных данных.

  • Для файлов cookie сложно отслеживать две или более транзакций на одном сайте, которые могут происходить на двух или более разных вкладках.

  • Файлы cookie могут использоваться с использованием таких методов, как межсайтовый скриптинг, что приводит к нарушениям безопасности.

Другие (менее популярные) альтернативы файлам cookie включают в себя методы, включающие строки запроса, скрытые поля формы, локальные общие объекты на основе флэш-памяти и т. Д. Каждый из них имеет свой собственный набор проблем, связанных с безопасностью, простотой использования, ограничениями по размеру и т. Д. Итак, до сих пор мы использовали довольно плохие способы хранения данных на стороне пользователя. Нам нужен лучший способ, и здесь на помощь приходит веб-хранилище.

Веб-хранилище

Спецификация W3C Web Storage была разработана как лучший способ хранения данных на стороне клиента. Он имеет два разных типа хранилища: хранилище сеансов и локальное хранилище.

Как сеанс, так и локальное хранилище обычно могут хранить около 5 МБ данных на домен, что значительно больше, чем файлы cookie.

Ресурсы:

https://developer.mozilla.org/en-US/docs/Web/API/Window/sessionStorage

https://javascript.info/localstorage

https://dev.opera.com/articles/web-storage/

http://www.quirksmode.org/html5/storage.html

http://www.ghacks.net/2015/02/05/how-to-clear-web-storage-in-your-browser-of-choice/

https://nakedsecurity.sophos.com/2014/11/05/how-to-clear-out-cookies-flash-cookies-and-local-storage/

http://www.opera.com/dragonfly/documentation/storage/

Статья DOMStorage о MDN (написана Джоном Ресигом)

http://ejohn.org/blog/dom-storage/

cssyphus
источник
2
Я бы добавил, что вы можете видеть, изменять и удалять эти переменные localStorage в «Режиме разработки» (нажав F12) на вкладке «Хранилище».
Дэвид Табернеро М.
То же самое и с indexDB? Т.е. его тоже можно очистить действием пользователя?
Pylinux
В IE В дополнение к вышеуказанным шагам, пользователю необходимо закрыть браузер, тогда только он сможет увидеть удаление локального хранилища
Кьяса Мадхави,
2

Контент в localstorage сохраняется до тех пор, пока пользователь решает очистить хранилище (полностью или одно значение внутри него)

Что касается согласованности в браузере, localstorage в настоящее время доступен во всех основных браузерах, включая IE8 + (см. Http://caniuse.com/#feat=namevalue-storage )

Фабрицио Кальдеран
источник
2

Если в Chrome при выполнении «очистки данных просмотра» вы выберете параметр «Файлы cookie и другие данные сайтов и плагинов», то данные sessionStorage будут удалены.

Удай Шраван К
источник