避免使用铬“;“页面无响应”;在javascript长时间执行时

避免使用铬“;“页面无响应”;在javascript长时间执行时,javascript,google-chrome,message,Javascript,Google Chrome,Message,我有一个javascript长执行过程(以及拥有它的原因)。如何在javascript中避免客户端机器上的消息?我读到一些关于 --禁用挂起监视器,但它是一个命令行参数或设置,而不是javascript(而且,我读到它不是一直工作的)假设您正在进行复杂的计算,而这些计算无法分解为更小的块,那么web workers似乎是我的解决方案。 javascript机制是在单独的线程中运行代码,但您必须通过消息传递与该线程(称为工作线程)通信: 在工人中: onmessage = function(e)

我有一个javascript长执行过程(以及拥有它的原因)。如何在javascript中避免客户端机器上的消息?我读到一些关于
--禁用挂起监视器,但它是一个命令行参数或设置,而不是javascript(而且,我读到它不是一直工作的)

假设您正在进行复杂的计算,而这些计算无法分解为更小的块,那么web workers似乎是我的解决方案。 javascript机制是在单独的线程中运行代码,但您必须通过消息传递与该线程(称为工作线程)通信:

在工人中:

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);
}

脚本标记上的
async
defer
属性是否解决了问题?在大多数情况下,应该没有有效的理由使用此类脚本。你说你有“理由”,理由是什么?代码在做什么?感谢Ali Sheikhpour的评论。但是,当脚本需要很长时间时,async和defer都不能避免该消息。感谢battlmonstr的评论。(简而言之,这是一个创建能够自己编写业务逻辑代码的软件的项目),但如果你知道如何解决这个问题,请集中精力帮助我们。我将在周一试试。谢谢过了一段时间,我对它进行了测试,它就像你们说的那样工作(即使经过很长的过程,也不会有更多的催情信息)。我还没有试过所有的功能,但是基本功能现在可以在我的库中使用了。谢谢
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);
}