yarkov
@yarkov
Помог ответ? Отметь решением.

Как вывести прогресс работы WebWorker-а?

Есть worker с тяжелой синхронной функцией:
const keypair = require('keypair');

onmessage = (e) => {
	let workerResult = keypair(e.data);
	postMessage(workerResult);
}

Использую так:
if (window.Worker) {
	let container = document.querySelector('#container');
	let myWorker = new Worker("worker.js");
	myWorker.onmessage = (e) => {
		container.innerHTML = e.data;
		console.log('Message received from worker');
	};
	myWorker.postMessage({"bits": 2048});
}
else {
	console.log('window.Worker Error');
}

Можно как-то отправлять из воркера или на странице считать кол-во прошедших секунд, за которые отработал воркер?
  • Вопрос задан
  • 135 просмотров
Решения вопроса 1
Ivanq
@Ivanq
Знаю php, js, html, css
Worker
const keypair = require('keypair');

onmessage = (e) => {
  let time = Date.now();
  let workerResult = keypair(e.data);
  postMessage({
    result: workerResult,
    time: Date.now() - time
  });
}


Client
if (window.Worker) {
  let container = document.querySelector('#container');
  let myWorker = new Worker("worker.js");
  myWorker.onmessage = (e) => {
    container.innerHTML = e.data.result + " in " + e.data.time + "ms";
    console.log('Message received from worker');
  };
  myWorker.postMessage({"bits": 2048});
}
else {
  console.log('window.Worker Error');
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы