У меня есть функция JavaScript, которая довольно длинная и выполняет ряд задач, я хотел бы сообщать пользователю о прогрессе, обновляя содержимое элемента SPAN сообщением, когда я иду. Я попытался добавить document.getElementById ('spnProgress'). InnerText = ... операторы по всему коду функции.
Однако, пока функция выполняется, пользовательский интерфейс не будет обновляться, и поэтому вы всегда будете видеть только последнее сообщение, записанное в SPAN, что не очень полезно.
Мое текущее решение состоит в том, чтобы разбить задачу на несколько функций, в конце каждой я устанавливаю сообщение SPAN, а затем «запускаю» следующую с помощью вызова window.setTimeout с очень короткой задержкой (скажем, 10 мс ). Это дает контроль и позволяет браузеру перекрасить SPAN с обновленным сообщением перед началом следующего шага.
Однако я нахожу это очень грязным и трудным для понимания кода, я думаю, что должен быть лучший путь. У кого-нибудь есть предложения? Есть ли способ заставить SPAN перерисовать, не выходя из контекста функции?
Спасибо