worker
wǎng luò shí huāng 2023-09-15
worker
worker
# worker
- WebWorker 和 SharedWorker:解锁前端性能的利器 (opens new window)
- gitee 收录 (opens new window)
- 还有 Service Workers
- gitee 收录 (opens new window)
- 里面涉及到了 MessageChannel
- 会产生两个 port。假如有 port1 和 port2。那么 port1 和 port2 是可以互相通信的,port1 发消息,那么 port2 可以接收到消息,反之亦然。
- postMessage 可以携带 port 这个参数,这样一来通讯就简单了
- SharedWorker
- https://juejin.cn/post/7065609156446650381?searchId=202504031019354AFC539ACFAD97772E57
- 对于 sharedworker 而言 只要 new SharedWorker(xx/xxxx.js)使用的 xx/xxxx.js 是相同的绝对地址 那么就会创建同一个 worker。特殊情况,假如使用的是现代化模块开发 xx/xxx.js 是包里的相对路径(并且在某个公用包里),在不同项目里使用了这个公用包那么两个项目的 worker 地址一定不一样。
- worker 的使用我们最好使用一个被人封装好的库,影藏了 postMessage 和 onmessage 的实现,使用起来更加方便。
- https://www.cnblogs.com/cangqinglang/p/15791367.html
- 文章截图 (opens new window)
- 仓库地址:https://github.com/GoogleChromeLabs/comlink#callbacks
- https://www.cnblogs.com/cangqinglang/p/15791367.html