+
95
-

回答

HTML5 Worker 是一种在浏览器中运行 JavaScript 代码的机制,它可以在主线程之外运行代码,从而避免阻塞主线程。Worker 线程通常用于执行计算密集型任务,以及在后台处理网络请求等任务。

如果您想在 Worker 线程中进行离线请求并返回数据,可以使用如下代码:

// 在 Worker 线程中发送请求并返回数据
self.addEventListener('message', function(e) {
const url = e.data;

fetch(url)
.then(response => response.json())
.then(data => {
// 将请求结果发送回主线程
self.postMessage(data);
});
}, false);


上面的代码使用 fetch 函数发送网络请求并使用 response.json() 方法将响应转换为 JSON 格式。随后,将请求结果通过 self.postMessage() 方法发送回主线程。

在主线程中,您可以将请求发送到 Worker 线程,并监听 message 事件以获取响应数据:
// 在主线程中发送请求到 Worker 线程
const worker = new Worker('worker.js');

worker.addEventListener('message', function(e) {
const data = e.data;

// 处理请求结果
console.log(data);
}, false);

worker.postMessage('https://example.com/data.json');


上面的代码使用 new Worker() 函数创建一个新的 Worker 线程,并将请求发送到 Worker 线程。随后,监听 message 事件以获取响应数据,并进行处理。

需要注意的是,Worker 线程不能直接访问 DOM,因此如果您需要在 Worker 线程中操作 DOM,请使用 postMessage() 方法将数据发送回主线程,然后在主线程中进行 DOM 操作。

网友回复

我知道答案,我要回答