#javascript #css #animation
#javascript #css #Анимация
Вопрос:
У меня есть метод в программе javascript, который иногда выполняет тяжелые вычисления (я даже не могу предположить, когда), я хотел уведомить пользователя о том, что что-то происходит в фоновом режиме, и он пока не может получить доступ к данным во время их обработки, сделал это с анимацией в css, но когда происходит это тяжелое вычисление, браузер даже не запускает анимацию, а вместо этого зависает. Пробовал некоторые хаки с setInterval и setTimeout, но они работают не так, как ожидалось. Единственным разумным решением, которое я только что нашел, было использование WebWorkers, которые в моей ситуации ожидали бы большого рефакторинга для работы. Есть ли какой-либо другой трюк, который приходит вам на ум, чтобы позволить javascript выполнять свою работу и в то же время показывать пользователю, что обработка происходит?
Спасибо
Комментарии:
1. Нет, javascript запускается в потоке пользовательского интерфейса, что означает, что обновления пользовательского интерфейса и выполнение кода никогда не могут происходить одновременно. Веб-работники предназначены для решения этой проблемы.
Ответ №1:
Вы могли бы попробовать отобразить анимированный GIF (например, круг загрузки YouTube) непосредственно перед выполнением своих вычислений и скрыть его с помощью display: none
свойства CSS, когда вычисления будут завершены.