`title: 前端日志采集与批量持久化方案``categories: Web 开发/前端/数据管理``keywords: 日志,采集,批量,IndexedDB,Service Worker,Background Sync``description: 设计前端日志采集与批量持久化方案,使用 IndexedDB 存队列并由 Service Worker 批量上报,保障在线与离线可靠。`采集与入队function openLogDB() {

return new Promise((resolve, reject) => {

const req = indexedDB.open('log-db', 1);

req.onupgradeneeded = () => {

const db = req.result;

if (!db.objectStoreNames.contains('logs')) db.createObjectStore('logs', { keyPath: 'id' });

};

req.onsuccess = () => resolve(req.result);

req.onerror = () => reject(req.error);

});

}

async function enqueueLog(db, entry) {

return new Promise((resolve, reject) => {

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

tx.objectStore('logs').put(entry);

tx.oncomplete = () => resolve();

tx.onerror = () => reject(tx.error);

});

}

批量上报使用 Background Sync 或前端定时器批量取出与上报;失败重试并保留最近窗口。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部