JS:防止无响应的脚本警告

时间:2015-03-18 23:44:13

标签: javascript noise

我正在研究一个从噪声算法生成模式的JS项目。我生成多个八度音程以获得我想要的结果,最终得到大约7,000,000个值。你可以想象,我从这里得到了一个无响应的脚本错误。

  • 有没有办法在现代浏览器中禁止此消息?在这种情况下,脚本正在做它预期的行为产生噪音 - 并且预计需要一段时间。
  • 使用服务器端语言生成噪音并使用AJAX或其他方式将其传回会更快吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

您可以使用webworkers,它们看起来像:

if (window.Worker) {
    // load web worker
    var thread = new Worker("webworker.js");
    // message received from web worker
    thread.onmessage = function(e) {
        var noise = e.data;
        //do something
    }
    // start web worker
    thread.postMessage(7000000);

}
else {
    output.textContent = "Web Workers are not supported in your browser";
}

webworker.js:

self.onmessage = function(e) {
    var r = e.data;
    while (r-- > 0) {
      //generate some noise
    }
    self.postMessage(noise);

};

如果您不想使用网络工作者,请为每个"步骤"你的生成过程,将它包装在一个带有小延迟的setTimeout中。这些延迟将使浏览器有时间做其他事情并保持响应。