setInterval()
Вызывает функцию или выполняет фрагмент кода несколько раз, с фиксированной временной задержкой между каждым вызовом этой функции.
в то время как()
Создает цикл, который выполняет указанный оператор, если условие теста оценивается как true. Условие оценивается до выполнение инструкции.
Если я использую while(true)
для выполнения определенного оператора, мой браузер либо сбой (Firefox), lags ( Opera), либо оператор не будет выполнен ( Chrome), но если я использовал setInterval()
с фиксированным временем 0 секунд, все работает отлично, хотя его только 0 секунд и while(true)
t логически быстрее, чем 0 секунд, но почему это происходит?
while() пример:
<!DOCTYPE html>
<html>
<body>
<div id="counter"></div>
<script>
var i = 0;
while (true)
{
document.getElementById("counter").innerHTML += i++;
}
</script>
</body>
</html>
setInterval() пример:
<!DOCTYPE html>
<html>
<body>
<div id="counter"></div>
<script>
var i = 0;
setInterval(function() { counter() }, 0);
function counter()
{
document.getElementById("counter").innerHTML += i++;
}
</script>
</body>
</html>