`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); }); }

发表评论 取消回复