Как мне справиться с ограничениями размера веб-хранилища? - PullRequest
5 голосов
/ 07 ноября 2011

Спецификация W3C для веб-хранилища (в народе известная как локальное хранилище HTML5, хотя это неправильное название) позволяет пользовательским агентам устанавливать ограничение размера, рекомендуемое в 5 МБ. Согласно различным источникам, которые я нашел в сети, многие современные браузеры используют этот предел 5 МБ, кроме IE, который дает 10 МБ.

Во-первых, я хочу знать, применяется ли ограничение к общей сумме localStorage и sessionStorage или к ним по отдельности?

Теперь, как мы на самом деле справляемся с этими ограничениями? Есть ли способ узнать, какой лимит для конкретного браузера? Есть ли веб-сайт, который ведет статистику по различным браузерам? Выдается ли исключение, когда браузер переходит лимит? Есть ли надежный способ проверить это исключение «класс» в разных браузерах?

1 Ответ

2 голосов
/ 07 ноября 2011

AFAIK, в объекте localStorage нет метода для определения его размера. Однако попытка записать объем данных, который превышает ограничение хранилища, приведет к исключению, которое вы можете перехватить.

Взгляните на http://arty.name/localstorage.html

По сути, вы можете заключить функцию записи в блок try...catch следующим образом:

function write(value, name) {
    try {
        localStorage.field = value;
        return true;
    } catch (e) {
        return false;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...