Javascript 如何获取当前应用程序使用的html5总存储大小
我需要一种方法来查找在运行时使用HTML5Javascript 如何获取当前应用程序使用的html5总存储大小,javascript,html,local-storage,Javascript,Html,Local Storage,我需要一种方法来查找在运行时使用HTML5sessionStorage/localStorage的应用程序所占用的总大小 我不想要基于分析器的方法 我现在正在做的是- var data = 0; for(var v in window.sessionStorage){ data += window.sessionStorage.getItem(v); } console.log(data);//.length to get char length 然后我复制粘贴这个值到一个文本文件中并检
sessionStorage
/localStorage
的应用程序所占用的总大小
我不想要基于分析器的方法
我现在正在做的是-
var data = 0;
for(var v in window.sessionStorage){
data += window.sessionStorage.getItem(v);
}
console.log(data);//.length to get char length
然后我复制粘贴这个值到一个文本文件中并检查大小
很丑,但仍然帮不了我。在HTML5API中有没有一种内置的方法(任何方法)
谢谢。不,不是跨浏览器。(有点像,其他人没有。)。当然,域上剩余的大小是可以计算出来的。参见下面的示例 仅适用于IE:
var remSpace = window.localStorage.remainingSpace;
对于FF/Chrome/Safari:
var limit = 1024 * 1024 * 5; // 5 MB
var remSpace = limit - unescape(encodeURIComponent(JSON.stringify(localStorage))).length;
歌剧:
5 MB是标准配置,但由于应用程序需要更多空间,浏览器提供了增加限制的功能。我在试图找到自己的解决方案时发现了这个问题,并希望与大家分享我的最终结果,以防对其他人有所帮助 它的缺点是,当我向localStorage添加一个值时,我将它的键放在一个数组中。然后,在将其他内容写入localStorage之前,我循环遍历这些键,并获取它们的长度总和,以确保没有超过我熟悉的阈值 如果localStorage大于2Mb(在本例中),那么它将从localStorage中删除第一项,从数组中删除该项,然后写入新项
// check the size of localStorage
var localStorageArray = [];
var localStorageSize = 0;
for ( var i=0; i < localStorageArray.length; i++ ) {
localStorageSize += localStorage.getItem(localStorageArray[i]).length;
}
// save to localStorage if it has not been saved already
if ( !localStorage.getItem(key) ){
if ( localStorageSize < 2000000 ) {
localStorage.setItem(key, value);
localStorageArray.push(key);
} else {
localStorage.removeItem(localStorageArray[0]);
localStorageArray.shift();
localStorage.setItem(key, value);
localStorageArray.push(key);
}
}
//检查本地存储的大小
var localStorageArray=[];
var localStorageSize=0;
对于(var i=0;i
因为这是字符串化的数据。length
至少应该给出您的字符数。@Christoph:是的,正如我在问题中提到的。你是在建议将它乘以每个字符的某个假定字节权重吗?整洁:)我可以接受,因为我不希望它超过5mb。这里的问题是总内存假定为5mb,但你可以调整例如ff来增加它。但限制看起来是10MB。参考:谢谢你的发帖。但这不是在检查是否有200万个value
字符吗?键的大小如何?我是否也应该检查1024*1024*2
(对于2MB)?