Ваш код представляет собой бесконечный цикл, если n !== 3
, потому что ничто из того, что вы делаете в цикле while, никогда не изменяет значение n, поэтому цикл while
просто работает вечно, ожидая, что значение n станет 3. Неясно, почему Вы помещаете это в while
петлю. Мне кажется, это должно быть if
вместо while
.
<script>
function checkiffinished() {
var n = $('.result-row').length;
if (n!==3)
{
$("span").text("There are " + n + " divs.");
};
}
</script>
Если вы собираетесь использовать цикл while, то у вас должно быть что-то, что фактически изменяет значение n в цикле, и код, который гарантирует, что вы достигнете условия в цикле while, чтобы предотвратить бесконечный цикл.
Как уже говорили другие, если вы хотите регулярно проверять значение 3, вам нужно многократно выполнять эту функцию, используя setTimeout или setInterval, а не просто бесконечный цикл. Но вы не хотите выполнять его часто или можете снизить производительность своего сайта и других страниц в браузере.
Лучший способ реализовать это - просто вызвать checkiffinished()
каждый раз, когда вы изменяете страницу. Таким образом, никакие циклы браузера не будут тратиться на регулярную проверку значения страницы, когда ничего не изменилось, и страница будет обновлена сразу после изменения (не дожидаясь запуска следующего таймера для проверки страницы).