背景与价值浏览器可能在空间紧张时清理非持久存储;主动持久化与容量估算可降低数据丢失风险。持久化申请与检查async function ensurePersistent() {

if (!('storage' in navigator)) return { ok: false };

const persisted = await (navigator as any).storage.persisted();

if (persisted) return { ok: true };

const granted = await (navigator as any).storage.persist();

return { ok: granted };

}

容量估算与阈值治理async function capacity() {

const est = await (navigator as any).storage.estimate();

const used = est.usage || 0;

const quota = est.quota || 0;

return { used, quota, ratio: used / quota };

}

IndexedDB 分层清理async function prune(dbName: string, keepDays = 30) {

const db = await openDB(dbName);

const tx = db.transaction('items', 'readwrite');

const store = tx.objectStore('items');

const now = Date.now();

for await (const cur of iterateStore(store)) {

if (now - cur.value.ts > keepDays * 86400000) store.delete(cur.key);

}

await tx.done;

}

指标验证(Chrome 128/Edge 130)持久化成功率:≥ 90%。数据保留率:长驻 30 天无丢失 ≥ 99.5%。配额利用:在 70% 以上时清理策略触发,崩溃与失败率不升高。回退策略不支持或拒绝持久化:降低存储占用,启用服务端同步与按需加载。测试清单长期驻留与容量逼近:数据保留稳定;达到阈值时清理生效。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部