在 javascript 长时间执行时避免 chrome "pages unresponsive"
Avoid chrome "pages unresponsive" upon javascript long execution
我有一个 javascript LONG 执行过程(以及拥有它的原因)。如何避免 in javascript 客户端计算机上的消息?我读了一些关于
--disable-hang-monitor,但它是一个命令行参数或设置,而不是 javascript(另外,我读到它并不总是有效)
假设您正在进行无法分解为更小块的复杂计算,网络工作者似乎是我的解决方案。
这是在单独线程中 运行 代码的 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);
}
我有一个 javascript LONG 执行过程(以及拥有它的原因)。如何避免 in javascript 客户端计算机上的消息?我读了一些关于 --disable-hang-monitor,但它是一个命令行参数或设置,而不是 javascript(另外,我读到它并不总是有效)
假设您正在进行无法分解为更小块的复杂计算,网络工作者似乎是我的解决方案。 这是在单独线程中 运行 代码的 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);
}