`title: Beacon API 可靠日志上报与持久化回退``categories: Web 开发/前端/数据管理``keywords: Beacon API,keepalive,日志,持久化,IndexedDB``description: 使用 Beacon API 在卸载阶段可靠上报日志与统计,失败或不支持时回退到 IndexedDB 队列与下次会话重放,提升采集稳定性。`上报与回退function sendBeaconJSON(url, data) { const blob = new Blob([JSON.stringify(data)], { type: 'application/json' }); const ok = navigator.sendBeacon(url, blob); return ok; } async function enqueueIfFail(db, url, data) { const ok = sendBeaconJSON(url, data); if (!ok) { await new Promise((resolve, reject) => { const tx = db.transaction('beacons', 'readwrite'); tx.objectStore('beacons').put({ id: crypto.randomUUID(), url, data, ts: Date.now() }); tx.oncomplete = () => resolve(); tx.onerror = () => reject(tx.error); }); } }

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部
1.640374s