如何通过JS统计本地存储空间和剩余空间?

18 min read

可以使用localStorage对象中的getItem()setItem()方法来进行统计。首先获取当前已使用的空间大小,然后再获取总共可用的空间大小,用总空间大小减去已使用空间大小即可得到剩余空间大小。

以下是实现方法:

function getLocalStorageSpace() {
  var total = 0,
    used = 0;

  for (var key in localStorage) {
    if (!localStorage.hasOwnProperty(key)) {
      continue;
    }

    total += localStorage.getItem(key).length;
    used += key.length + localStorage.getItem(key).length;
  }

  return {
    total: (total / 1024).toFixed(2) + ' KB', // 将总空间转换为 KB
    used: (used / 1024).toFixed(2) + ' KB', // 将已使用空间转换为 KB
    remaining: ((5120 - used) / 1024).toFixed(2) + ' KB', // 5 MB 总共可用空间
  };
}

console.log(getLocalStorageSpace());

这个函数将会返回一个对象,包含当前已使用的空间大小、总空间大小和剩余空间大小(这里假设localStorage总共可用空间为5 MB即5120 KB)。需要注意的是,每个浏览器对localStorage的实现方式可能稍有不同,所以这个函数计算出的值仅供参考。