`title: SharedWorker 统一持久层与多页面协调``categories: Web 开发/前端/数据管理``keywords: SharedWorker,统一持久层,多页面,IndexedDB,OPFS``description: 使用 SharedWorker 在多页面间共享统一的持久层服务,通过消息协议协调写入与查询,降低竞争与重复。`启动与连接// main
const w = new SharedWorker('/persist-worker.js');
w.port.start();
w.port.postMessage({ type: 'put', collection: 'items', data: { id: '1' } });
w.port.onmessage = (e) => { /* 处理返回 */ };
Worker 侧// persist-worker.js
onconnect = (e) => {
const port = e.ports[0];
port.onmessage = async (ev) => {
const msg = ev.data;
if (msg.type === 'put') {
const db = await openDB('shared-db', 1);
await bulkPut(db, [msg.data]);
port.postMessage({ ok: true });
}
};
};

发表评论 取消回复