+
24
-

SharedWorker 和 WebWorker 有啥不同?

SharedWorker 和 WebWorker 有啥不同?

网友回复

+
22
-

SharedWorker 和 WebWorker 都是浏览器提供的 Web API,用于在后台线程执行脚本,避免阻塞主线程。

它们的主要区别如下:

1. 作用域与通信

WebWorker

每个 Worker 实例仅与创建它的单个页面 / 窗口绑定(一对一)。

页面关闭后,Worker 自动终止。

通过 postMessage() 和事件监听(onmessage)通信,数据通过拷贝传递(非共享内存)。

SharedWorker

可被多个同源页面共享(一对多),需通过端口(port)通信。

即使所有页面关闭,Worker 仍可能继续运行(需手动终止)。

多个页面需先连接到同一 Worker 实例,再通过 port.postMessage() 通信。

2. 生命周期

WebWorker

随创建页面的关闭而销毁,...

点击查看剩余70%

我知道答案,我要回答