Vecta
Vecta

Reputation: 2350

JS: Prevent Unresponsive Script Warnings

I'm working on a JS project that generates a pattern from a noise algorithm. I'm generating multiple octaves of noise to get the result I want which ends up being around 7,000,000 values. As you can imagine, I'm getting an unresponsive script error from this.

Thanks!

Upvotes: 3

Views: 1103

Answers (1)

dave
dave

Reputation: 64677

You could use webworkers, which would look something like:

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

};

If you don't want to use webworkers, for each "step" of your generation process, wrap it in a setTimeout with a small delay. These delays will give the browser time do other stuff and stay responsive.

Upvotes: 2

Related Questions