Вы можете рассчитать эти цифры, если хотите. В основном, ограничение по умолчанию для localStorage и webStorage составляет 5 МБ, где имя и значения сохраняются как UTF16, поэтому на самом деле это половина того, что составляет 2,5 МБ с точки зрения сохраненных символов. В webStorage вы можете увеличить его, добавив "unlimited_storage" в манифест.
То же самое применимо в WebStorage, но вы должны просмотреть все таблицы и выяснить, сколько символов в каждой строке.
В localStorage Вы можете проверить это, выполнив скрипт для заполнения:
var row = 0;
localStorage.clear();
var populator = function () {
localStorage[row] = '';
var x = '';
for (var i = 0; i < (1024 * 100); i++) {
x += 'A';
}
localStorage[row] = x;
row++;
console.log('Populating row: ' + row);
populator();
}
populator();
Вышеуказанное должно вылетать в строке 25 из-за нехватки места, что составляет около 2,5 МБ. Вы можете сделать обратное и посчитать, сколько символов в строке, и это определяет, сколько места у вас есть.
Другой способ сделать это - всегда добавлять «полезную нагрузку» и проверять исключение, если оно существует, если оно существует, то вы знаете, что у вас недостаточно места.
try {
localStorage['foo'] = 'SOME_DATA';
} catch (e) {
console.log('LIMIT REACHED! Do something else');
}
Internet Explorer сделал что-то под названием «Остальное пространство», но это не работает в Chrome / Safari:
http://msdn.microsoft.com/en-us/library/cc197016(v=VS.85).aspx