为什么web worker可以在前端开多线程,解决单线程卡死页面的问题,但是没有得到广泛使用?

2025-06-27 20:00:11

Worker本身的实现确实是繁琐的,尤其是 postMessage、onmessage这类线程间数据通信操作,就挺繁琐。

这个时候可以用谷歌的comlink库: comlink - npm comlink能用单线程操作的习惯来实现多线程操作,很赞。

(其原理是Proxy代理机制) 当然Vite也有适配: vite-plugin-comlink - npm 然后,解决完线程间通讯的麻烦事之后,还要面对一个坑。

就是Worker和Worker之间、Worker和主线程之间,无法实现复杂数据类型的传输(会丢类型)。

…。

为什么web worker可以在前端开多线程,解决单线程卡死页面的问题,但是没有得到广泛使用?
广告位810*200
相关阅读
为什么 lua 在游戏开发中应用普遍?

为什么 lua 在游戏开发中应用普遍?

因为 QuickJS 这样的东西没有早出来几年,否则根本没有...

2025-06-24
现在已经有5K、6K、8K分辨率显示器,那么8K之后是什么?

现在已经有5K、6K、8K分辨率显示器,那么8K之后是什么?

8K之后是16K,但个人认为16K可能遥遥无期,毕竟8K都还...

2025-06-24
为什么Go仅仅160MB的安装包就可以编译程序,而Rust却还需要几个GB的VC++才能编译?

为什么Go仅仅160MB的安装包就可以编译程序,而Rust却还需要几个GB的VC++才能编译?

我觉得吧,很多时候,解释是没有用的。 在这方面Go确实要比其...

2025-06-24
node 项目中如何使用 Node Schedule 创建定时任务?

node 项目中如何使用 Node Schedule 创建定时任务?

需求描述日常开发中,我们常常会要执行一些定时任务比如定时清理...

2025-06-24
中国的防空系统能有效防止B2、B21这类飞翼隐身战略轰炸机入侵吗?

中国的防空系统能有效防止B2、B21这类飞翼隐身战略轰炸机入侵吗?

从电子侦查船这两个街溜子开赴中东,我们就知道B2来的概率非常...

2025-06-24