arkadovv
@arkadovv

Почему перерисовка страницы происходит после alert()?

document.documentElement.style.backgroundColor = 'red';
alert('alert');
document.documentElement.style.backgroundColor = 'green';

Ожидаю что сначала документ будет красным, потом алерт (документ еще красный), а потом документ зеленый, по факту же до алерта документ белый, после алерт - сразу зеленый.
Кто-нибудь подскажет почему?
  • Вопрос задан
  • 535 просмотров
Решения вопроса 1
bingo347
@bingo347 Куратор тега JavaScript
Crazy on performance...
Операции с dom довольно тяжелые, поэтому когда Вы вызываете изменения в dom браузер их просто складывает и затем применяет все одним разом (своеобразная оптимизация) перед event-loop, то есть, когда текущий поток исполнения завершится
alert - блокирующая операция, поэтому пока она работает (Вы видите окно) поток исполнения завершиться не может
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
Комментировать
Sanasol
@Sanasol Куратор тега JavaScript
нельзя просто так взять и загуглить ошибку
не успевает, alert блочит весь процесс, скорее всего
Ответ написан
Комментировать
risentveber
@risentveber
fullstack web developer
Только что запускал код - все работает как надо - видимо у вас просто браузер тормозит.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы