避免 chrome 在 javascript 长时间执行时“页面无响应”

gtr*_*onp 4 javascript message google-chrome

我有一个 javascript 长执行程序(以及拥有它的原因)。如何在 javascript 中避免客户端计算机上的消息?我读到了一些关于 --disable-hang-monitor 的内容,但它是一个命令行参数或设置,而不是 javascript (另外,我读到的并不总是有效)

Mar*_*kus 5

假设您正在执行无法分解为较小块的复杂计算,那么网络工作人员似乎是我的解决方案。这是在单独线程中运行代码的 javascript 机制,但您必须通过消息传递与该线程(称为工作线程)进行通信: https ://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/使用_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');
}
Run Code Online (Sandbox Code Playgroud)

在工人中:

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);
}
Run Code Online (Sandbox Code Playgroud)