`title: Web Workers 与主线程协作的持久化架构``categories: Web 开发/前端/数据管理``keywords: Web Worker,SharedWorker,消息,Streams,OPFS,IndexedDB``description: 设计面向持久化的主线程-Worker 协作模型,使用消息与流传递数据,在 Worker 内执行写入 OPFS/IndexedDB 以避免主线程阻塞。`消息契约// main const w = new Worker('/persistence-worker.js'); w.postMessage({ type: 'write-opfs', name: 'out.bin', bytes }); // worker self.onmessage = async ({ data }) => { if (data.type === 'write-opfs') { const root = await navigator.storage.getDirectory(); const handle = await root.getFileHandle(data.name, { create: true }); const sync = await handle.createSyncAccessHandle(); try { sync.write(data.bytes); sync.flush(); } finally { sync.close(); } } }; 流式管道async function netToOPFS(url, name) { const res = await fetch(url); const root = await navigator.storage.getDirectory(); const handle = await root.getFileHandle(name, { create: true }); const writable = await handle.createWritable(); await res.body.pipeTo(writable); }

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部