可以计算这些数字,如果你想。基本上,localStorage和webStorage的默认限制是5MB,其中名称和值保存为UTF16,因此它实际上是存储字符2.5 MB的一半。在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.5MB。您可以进行反演并计算每行的字符数量,并确定您拥有多少空间。
这样做的另一种方法是始终添加“有效内容”并检查异常(如果存在),如果存在,则知道空间不足。
try {
localStorage['foo'] = 'SOME_DATA';
} catch (e) {
console.log('LIMIT REACHED! Do something else');
}
Internet Explorer中没有所谓的 “remainingSpace”,但是,这并不在Chrome/Safari上: http://msdn.microsoft.com/en-us/library/cc197016(v=VS.85).aspx