Will setInterval cause browsers to hang?
Solution 1:
The reason setInterval
is bad is because it will try to execute the code every X MS regardless of what's going on in the thread. So if you have:
setInterval( complexFunction, 1 ); // complexFunction takes >1 MS to complete
...you may end up with setInterval
trying to re-execute several times before even its own code is complete! However, you can use setTimeout
similarly and avoid this problem:
setTimeout( complexFunction, 1 );
function complexFunction() {
// complex code
setTimeout( complexFunction, 1 );
}
...now complexFunction
will only call itself again once its own code is complete, so if its own code takes longer than 1 MS to complete you won't have any backlog to deal with like you would with setInterval