Ответ 1
Во-первых, некоторые полезные ресурсы:
- Веб Тест поддержки хранилища - содержит таблицу, сравнивающую квоты на хранение данных между браузерами.
- Простой Тест квоты localStorage
- Описание поведения браузера localStorage
- Спецификация W3C - указывает, как должен вести себя пользовательский агент (например, браузер) (как localStorage, так и sessionStorage).
В ответ на ваш вопрос настольные браузеры обычно имеют начальную максимальную квоту localStorage по 5 МБ на домен. В некоторых случаях это может быть настроено пользователем:
- Опера: opera: config → Квота домена Для localStorage
- Firefox: about: config → dom.storage.default_quotali >
В Chrome не существует способа настроить этот параметр, хотя, например, Opera, данные локального хранилища могут быть отредактированы непосредственно на один домен с помощью инструментов разработчика.
При попытке сохранить данные в localStorage браузер проверяет наличие достаточного количества оставшегося пространства для текущего домена. Если да:
- Данные сохраняются, переписывая значения, если идентичный ключ уже существует.
Если нет:
- Данные не сохраняются, а существующие данные не перезаписываются.
- Выдается исключение
QUOTA_EXCEEDED_ERR
.
В этом случае getItem(key)
вернет последнее значение, которое было успешно сохранено, если оно есть.
(Opera немного отличается тем, что отображает диалоговое окно, предоставляющее пользователю выбор увеличения пространства для хранения для текущего домена.)
Обратите внимание, что sessionStorage и localStorage являются реализациями одного и того же объекта хранения, поэтому их поведение аналогично, и обработка ошибок одинакова.