localStorage.length仅表示键值对数量,不反映字节数;可通过遍历key和value并按UTF-16(每字符2字节)累加估算总占用字节数。

HTML5 的 Storage 接口(如 localStorage)本身**没有直接提供“使用率”或“容量限制”的公开属性**,length 属性仅表示当前存储的**键值对数量**(即有多少个 key),而非占用的字节数或总容量。因此,不能单靠 length 计算“存储使用率”。但我们可以结合 length 和手动估算的键值数据大小,构建一个**轻量、启发式的本地存储使用情况仪表盘**。
理解 localStorage.length 的真实含义
localStorage.length 返回的是当前 localStorage 中已设置的 key 的个数(整数),例如:
- 执行
localStorage.setItem('a', '1');→length变为1 - 再执行
localStorage.setItem('b', 'hello world');→length变为2 - 它不反映每个 value 占多少空间,也不告诉你浏览器实际分配了多少字节
估算总字节数:遍历 key 并累加字符串长度
虽然无法获取浏览器底层配额(通常为 5–10 MB,因浏览器而异),但可通过 JavaScript 近似计算当前占用的 UTF-16 字节数(localStorage 存储的是字符串):
将 Markdown 文章转换为微信公众号兼容的纯 HTML 格式。当用户要求"转成微信格式"、"生成公众号文章 HTML"、"排版到微信草稿箱"、"微信粘贴格式"时触发。输出带内联样式的纯 HTML,微信编辑器可直接渲染,无需额外适配。支持标题、段落、列表、粗体、行内代码、表格、引用块、代码块、配图的完整转换。
- 每个字符在 JS 中占 2 字节(UTF-16),所以
str.length * 2是粗略字节数 - 需同时计入 key 名称长度(key 也是字符串)
- 示例计算函数:
function getStorageByteSize() {
let total = 0;
for (let i = 0; i 设定合理参考容量并计算使用率
由于标准未规定确切配额,实践中可按保守值(如 5 MB = 5,242,880 字节)作为基准,或通过试探法动态探测(较复杂,一般不推荐)。简单仪表盘逻辑如下:
- 获取估算字节数:
const used = getStorageByteSize(); - 设定参考上限:
const limit = 5 * 1024 * 1024; - 计算百分比:
const percent = Math.min(100, Math.round((used / limit) * 100)); - 更新 DOM 元素(如进度条):
progressBar.style.width = percent + '%';
构建简易 HTML 仪表盘示例
只需几行 HTML + JS 即可呈现可视化效果:
<div>
<strong>本地存储使用情况</strong>
<div style="background:#eee; height:20px; border-radius:4px; margin:8px 0;">
<div id="usage-bar" style="height:100%; background:#4CAF50; width:0%; border-radius:4px; transition:width 0.3s;"></div>
</div>
<span id="usage-text">0 / 5 MB (0%)</span>
</div>
<p><script>
function updateStorageDashboard() {
const used = getStorageByteSize();
const limit = 5 <em> 1024 1024;
const percent = Math.min(100, Math.round((used / limit) * 100));
const usedMB = (used / 1024 / 1024).toFixed(2);</script></p><p>document.getElementById('usage-bar').style.width = percent + '%';
document.getElementById('usage-text').textContent =
<code>${usedMB} / 5 MB (${percent}%)</code>;
}
updateStorageDashboard();
</p>前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










