Возможно, что время выполнения OuterFunc
больше, чем интервал повторения.
Другими словами, выполнение OutherFunc
занимает более 20 секунд и вызывается каждые 20 секунд, что вызовет исключение stackoverflow , поскольку функция вызывается до завершения своего выполнения в бесконечном цикле.
Если вы используете setInterval
для выполнения функции OuterFunc
каждые 20 секунд, это можно исправить с помощью вызовов setTimeout
для имитации функции setInterval
:
(function helper(){
OutherFunc();
// after the OutherFunc is done executing, trigger it after 20 seconds
setTimeout(helper,20);
})();
Это может помочь вам, только если setInterval
является причиной зависания браузера.
Если вам это не поможет, и если вам не очень важны старые браузеры, возможно, вы могли бы реализовать своего рода « threading », используя web-worker . Таким образом, ваш код будет выполняться в разных потоках, что, безусловно, ускорит ваше приложение (a.k.a пока пока браузер зависает).
Надеюсь, это поможет!