`title: IndexedDB TTL 到期清理策略``categories: Web 开发/前端/数据管理``keywords: IndexedDB,TTL,到期,清理,配额``description: 为数据设置到期时间并定期清理过期项,结合窗口策略与批处理,降低配额压力并保持查询性能。`设置与清理async function purgeExpired(db, storeName, now = Date.now()) {
return new Promise((resolve, reject) => {
const tx = db.transaction(storeName, 'readwrite');
const s = tx.objectStore(storeName);
const idx = s.index('byExpiresAt');
const r = IDBKeyRange.upperBound(now);
idx.openCursor(r).onsuccess = e => {
const c = e.target.result; if (!c) return;
s.delete(c.primaryKey); c.continue();
};
tx.oncomplete = () => resolve();
tx.onerror = () => reject(tx.error);
});
}

发表评论 取消回复