我目前正在开发一个网站,它将使用html5的localStorage。我已经阅读了所有关于不同浏览器的大小限制。但是,我还没有看到任何关于如何找出localStorage实例当前大小的内容。This question似乎表明JavaScript没有内置的方式来显示给定变量的大小。localStorage有没有我没见过的内存大小属性?有没有什么简单的方法可以解决我错过的这个问题?
我的网站旨在允许用户在“离线”模式下输入信息,因此能够在存储空间几乎已满时给他们一个警告是非常重要的。
发布于 2014-03-11 19:04:49
您可以通过以下方法计算本地存储空间:
function sizeofAllStorage(){  // provide the size in bytes of the data currently stored
  var size = 0;
  for (i=0; i<=localStorage.length-1; i++)  
  {  
  key = localStorage.key(i);  
  size += lengthInUtf8Bytes(localStorage.getItem(key));
  }  
  return size;
}
function lengthInUtf8Bytes(str) {
  // Matches only the 10.. bytes that are non-initial characters in a multi-byte sequence.
  var m = encodeURIComponent(str).match(/%[89ABab]/g);
  return str.length + (m ? m.length : 0);
}
console.log(sizeofAllStorage());最后,以字节为单位的大小将被记录在浏览器中。
https://stackoverflow.com/questions/4391575
复制相似问题