Большим препятствием для запуска скриптов, которые выполняются продолжительное время, является тот факт, что в JavaScript нет многопотоковой обработки. Это значит, что окно браузера не отвечает на события пользователя до тех пор, пока выполняющийся скрипт не закончит своей работы. Следовательно, скрипты, которые выполняются 1, 2 или более секунд, "замораживают" пользовательский интерфейс, что не совсем приятно для пользователя.
Кроме того, браузеры имеют ограничение на продолжительность выполнения скриптов. Если скрипт выполняется дольше лимита, предостовляемого браузером для выполнения, то появляется окно, предлагающая прервать выполнение скрипта.