Как найти размер localStorage - PullRequest
       55

Как найти размер localStorage

92 голосов
/ 08 декабря 2010

В настоящее время я занимаюсь разработкой сайта, который будет использовать HTML5 localStorage.Я прочитал все об ограничениях размера для разных браузеров.Тем не менее, я не видел ничего о том, как узнать текущий размер экземпляра localStorage. Этот вопрос указывает на то, что в JavaScript нет встроенного способа отображения размера для данной переменной.Есть ли у localStorage свойство размера памяти, которое я не видел?Есть ли простой способ сделать это, чего мне не хватает?

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

Ответы [ 13 ]

1 голос
/ 26 мая 2012

Как указано в спецификации, каждый символ строки имеет размер 16 бит.

Но проверка с помощью Chrome (Настройки> Настройки контента> Файлы cookie и данные сайта) показывает, что запуск localStorage занимает 3 КБ (размер служебной информации)

И размер хранимых данных следует этому соотношению (с точностью до 1 КБ)
3 + ((localStorage.x.length * 16) / (8 * 1024)) кБ

где localStorage.x - строка хранения.

0 голосов
/ 29 июля 2016

// Память занимает как ключ, так и значение, поэтому обновленный код.

var jsonarr=[];
var jobj=null;
for(x in sessionStorage) // Iterate through each session key
{
    jobj={}; 
    jobj[x]=sessionStorage.getItem(x); //because key will also occupy some memory
    jsonarr.push(jobj);
    jobj=null;
}
//https://developer.mozilla.org/en/docs/Web/JavaScript/Data_structures 
//JavaScript's String type is used to represent textual data. It is a set of "elements" of 16-bit unsigned integer values. 
var size=JSON.stringify(jsonarr).length*2; //16-bit that's why multiply by 2
var arr=["bytes","KB","MB","GB","TB"]; // Define Units
var sizeUnit=0;
while(size>1024){ // To get result in Proper Unit
    sizeUnit++;
    size/=1024;
}
alert(size.toFixed(2)+" "+arr[sizeUnit]);
0 голосов
/ 08 декабря 2010
window.localStorage.remainingSpace
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...