可以说我创建了一个本地存储 key 并给它一个空字符串。键项目的名称占用的空间与每个字符的值占用的空间相同吗?

例如做

localStorage.setItem("keyitem","")
//Equal the space of this other one under?
localStorage.setItem("key","item");

另外,键的数量重要吗?例如
localStorage.setItem("key","");
//Equal the amount of storage as the 3 under combined?
localStorage.setItem("k","");
localStorage.setItem("o","");
localStorage.setItem("h","");

最佳答案

我曾经找到一个函数来计算localStoragesessionStorage对象的大小,但是我不记得在哪里找到它了。
这是代码:

Storage.prototype.size = function(units) {
    'use strict';
    units = units ? units.toUpperCase() : 'MB';
    var size = unescape(encodeURIComponent(JSON.stringify(this))).length;
    switch (units) {
        case 'B': return [size,'B'].join(' ');
        case 'KB': return [+(size / 1024).toFixed(3),'KB'].join(' ');
        default: return [+(size / 1024 / 1024).toFixed(3),'MB'].join(' ');
    }
};
我决定继续并在各种浏览器中运行一些测试。







因此,看起来FireFox,Chrome和Opera(可能还有Safari,但我没有)都具有相同的行为,并且键占用的空间远大于它们的值。
在IE(旧的IE ...)中,实现的执行方式与存储内容的方式无关。

关于javascript - 本地存储 key 本身会占用多少空间?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29944944/

10-09 21:47