Избегайте хромированных «страниц, не отвечающих» при длительном выполнении JavaScript - PullRequest
0 голосов
/ 09 марта 2019

У меня есть длинная процедура исполнения javascript (и причины для этого).Как я могу избежать в javascript сообщения на клиентских компьютерах?Я читал что-то о --disable-hang-monitor, но это аргумент или параметр командной строки, а не javascript (также я читал, что не работает всегда)

1 Ответ

1 голос
/ 09 марта 2019

Предполагая, что вы делаете сложные вычисления, которые не могут быть разбиты на более мелкие куски, веб-работники кажутся мне решением. Это механизм javascript для запуска кода в отдельном потоке, но вы должны общаться с этим потоком (называемым работником) через обмен сообщениями: https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Using_web_workers

var myWorker = new Worker('worker.js');
first.onchange = function() {
  myWorker.postMessage([first.value,second.value]);
  console.log('Message posted to worker');
}

second.onchange = function() {
  myWorker.postMessage([first.value,second.value]);
  console.log('Message posted to worker');
}

myWorker.onmessage = function(e) {
  result.textContent = e.data;
  console.log('Message received from worker');
}

В рабочем:

onmessage = function(e) {
  console.log('Message received from main script');
  var workerResult = 'Result: ' + (e.data[0] * e.data[1]);
  console.log('Posting message back to main script');
  postMessage(workerResult);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...