2012-05-18 2 views
20

Я использую web sql и indexeddb, но в качестве резервной копии я хочу использовать btree/localstorage. Сколько данных можно сохранить в localStorage на данном браузере/платформе?Сколько данных может сохранить браузер в localStorage

Если никто не знает, есть ли способ определить размер javascript-объекта? например JSON.stringify, а затем умножить на количество символов? Затем я мог просто написать сценарий, который записывает в localStorage и читает, чтобы увидеть, есть ли значение, и как только появляется ошибка или чтение перестает работать, это магическое число.

Мне нужно проверить это на (ie9, ff, safari, chrome, opera, safari на ipad, браузер по умолчанию androids, дельфин на android, ff на android, opera on android).

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

ответ

32

Спасибо за ответ allaire. Чтобы получить точный ответ, я закончил писать сценарий. Результатом этого шага является то, что вы получаете как минимум 5 МБ на настольном webkit, ff, т. Е. В опере. IE фактически позволяет мне писать 1 ГБ, да 1 ГБ данных.

Странно, ff разбился при попытке записать строку длиной 742 символа, но он написал бы строку длиной 1133 символа, и это было с очищенным кешем, поэтому я не знаю, что с этим связано.

~1000 character object written to different localStorage[locations]

How big of a string can a given localStorage location be?

Это грязный сценарий, но вы можете запускать тесты самостоятельно, если вы хотите:

<!DOCTYPE /> 
<html> 
<script src="http://code.jquery.com/jquery-1.6.4.min.js"></script> 
<script type="text/javascript"> 
    $(document).ready(function() { 
     var alphabet = "abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ 123456789 {} +-=*/\'[]<>|&^%$#@!,?."; 
     var i = 0; 
     var curWord = ""; 
     var tot = 0; 
     localStorage["sameSpot"] = null; 
     $("#same").bind("click", function() { 
      var write = function() { 
       if (!localStorage["sameSpot"]) 
        localStorage["sameSpot"] = alphabet[i++]; 
       else { 
        curWord = alphabet[i++] + localStorage["sameSpot"]; 
        localStorage["sameSpot"] = curWord; 
       } 
       if (i == alphabet.length) 
        i = 0; 
       tot++; 
       $("#local").html(curWord); 
       $("#memory").html(localStorage["sameSpot"]); 
       $("p").html("The number of characters written to localStorage[\"sameSpot\"] is: " + tot); 
       setTimeout(write, 1); 
      }; 
      write(); 
     }); 


     var tot2 = 0; 
     var totChars = 0; 
     $("#different").bind("click", function() { 
      var write = function() { 
       var saveObj = { 
        alphabet: alphabet + alphabet + alphabet + alphabet + alphabet + alphabet + alphabet + alphabet + alphabet + alphabet + alphabet + alphabet, 
        date: new Date(), 
        random: Math.random() 
       }; 
       saveObj = JSON.stringify(saveObj); 
       totChars += saveObj.length; 
       localStorage["t" + tot2] = saveObj; 
       $("#local").html(saveObj); 
       $("#memory").html(localStorage["t" + tot2]); 
       tot2++; 
       $("p").html("The number of unique entries made in localStorage[0++] is " + tot2 + " and the total number of characters is: " + totChars + " with an average of " + Math.floor(totChars/tot2) + " characters per record"); 
       setTimeout(write, 1); 
      }; 
      write(); 
     }); 
    }); 
</script> 
<body> 
<button id="same">Write Chars To Same Spot</button> 
<button id="different">Write Chars To Same Spot</button> 
<br /> 
<p></p> 

<textarea rows="50" cols="100" id="memory"></textarea> 
<textarea rows="50" cols="100" id="local"></textarea> 
</body> 
</html> 
+3

Я не могу читать скриншоты, может кто-то вытащить результаты из в стол или что-то еще? –

+0

Перейдите непосредственно к URL-адресу изображений, и вы можете увеличивать масштаб. –

13

Материал из Википедии:

Размер хранения интернет-хранилище обеспечивает гораздо большую емкость (5MB для каждого домена в Mozilla Firefox, [6] Google Chrome и Opera, 10Мб памяти область в Internet Explorer [7]) по сравнению с 4 КБ (примерно в 1000 раз меньше места), доступным для файлов cookie.

window.localStorage (от http://msdn.microsoft.com/en-us/library/cc197062(v=vs.85).aspx) атрибута

LocalStorage обеспечивает постоянные места хранения для доменов. Это позволяет веб-приложениям хранить на клиенте почти 10 МБ пользовательских данных, таких как целые документы или почтовый ящик пользователя.

Смежные вопросы