Я создаю курс для людей, которые никогда не программировали, и хотели бы продемонстрировать базовые манипуляции с DOM без использования асинхронных программ или функций обратного вызова.Chrome repaint DOM во время выполнения JavaScript
Я думал, что я мог бы сделать что-то вроде этого:
function color(element, color) {
element.style = "background: " + color + ";";
}
function wait(milliseconds)
{
var e = new Date().getTime() + (milliseconds);
while (new Date().getTime() <= e) {}
}
function disco() {
var body = document.getElementById("body")
color(body, "red")
wait(500)
color(body, "darkGreen")
wait(500)
color(body, "darkBlue")
}
disco()
Это прекрасно работает, но интерфейс не не обновляется до конца, так что фон не станет красным или зеленым - это просто заканчивается синим.
Есть ли способ принудительно перекрасить во время выполнения функции?
Я знаю, что это не очень хорошая идея или даже приемлемая для реальной реализации, но моя цель - держать вещи в руках для новичков.
Возможный дубликат [Что это версия JavaScript сна()] (http://stackoverflow.com/questions/951021/what-is-the-javascript-version- of-sleep) – Andreas
Это ваш точный код? Затем вам не хватает точек с запятой в конце строк внутри 'disco'. – elementzero23
@ elementzero23, точки с запятой, хотя и рекомендованы, не являются обязательными. – melancia