Что происходит, когда localStorage заполнен?

Я нашел статьи по поводу кэша поведение, поэтому я могу только предположить, что это не сильно отличается, но я хотел убедиться.

Я прочитал, что у большинства браузеров есть 5 Мб (плюс-минус) для localStorage, и меня интересовало, каким будет поведение браузеров?

Я понимаю, что каждый браузер действует по-разному, но меня интересует в основном Safari, Chrome и Firefox (поскольку это те, которые я считаю броузеры.)

  • будут ли браузеры, упомянутые выше, удалять данные с моего сайта или он выберет "самый старый" или что-то в этом роде?
  • будет ли мой товар сохранен в таком случае?

и самое главное :

  • допустим, я "злоупотребляю" localStorage и моим сайтом, пытаясь использовать все это на одной странице я заполняю его и пытаюсь сэкономить больше, я получу предупреждение и будет getItem вернуть null, когда это произойдет, или он каким-то образом сохранен в памяти?

  • что произойдет, если я попытаюсь сохранить элемент больше, чем размер localStorage?

    ответ : ответ можно найти здесь

  • такое же поведение можно ожидать от sessionStorage, который allegdly должны быть одинаковы?

Я знаю, что это много вопросов, но я стараюсь чтобы понять все, что связано с предметом, я был бы благодарен за любую часть вопроса можно ответить.

С уважением.

1 ответов


во-первых, некоторые полезные ресурсы:

в ответ на ваш вопрос, настольные браузеры, как правило, имеют начальную максимальную квоту localStorage 5 Мб на домен. Это может быть скорректировано Пользователем в некоторых случаях:

  • Opera: opera: config - > квота домена для localStorage
  • Firefox: о программе: конфигурация - > dom.место хранения.default_quota

в Chrome, похоже, нет способа для пользователя настроить этот параметр, хотя, как Opera, данные localStorage можно редактировать непосредственно на домен с помощью разработчика Инструменты.

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

  • данные сохраняются, перезаписывая значения, если идентичный ключ уже существует.

Если нет:

  • данные не сохраняются и никакие существующие данные не перезаписываются.
  • A QUOTA_EXCEEDED_ERR исключение.

в этом случае getItem(key) возвращает последний значение, которое было успешно сохранено, если таковое имеется.

(Opera немного отличается тем, что отображает диалоговое окно, предоставляющее пользователю выбор увеличения пространства хранения для текущего домена.)

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