Подтвердить что ты не робот

Что такое цикл событий браузера?

Я занимаюсь программированием веб-приложений с использованием GWT и смущен термином "цикл событий браузера".

Я столкнулся с ситуациями, когда мне нужно выполнить отложенные команды и "сделать что-нибудь" после завершения цикла событий браузера.

Я хотел бы знать, что именно это и что происходит во время цикла цикла события и в каком порядке?

4b9b3361

Ответ 1

Цикл событий браузера - это поток, запущенный браузером, который постоянно сканирует и запускает разные события, как это звучит. По мере возникновения событий они помещаются в очередь событий и запускаются поочередно одним потоком событий. Ваш javascript не должен создавать свои собственные циклы, ожидающие его завершения или что-то в этом роде... он заблокирует этот поток непрерывного потока событий. Вместо этого вы должны использовать что-то вроде setTimeout или setInterval и проверять все условия, которые вы ожидаете, чтобы браузер мог работать, пока он "ждет".

GWT хорош тем, что он может кооптировать этот процесс несколько с помощью scheduler - в вашем случае, когда вы хотите запустить то после завершения цикла событий вы, вероятно, захотите использовать scheduleFinally или scheduleDeferred. Он будет вводить обработчик фрагмента кода в очередь событий, чтобы он запускался после всего остального кода в текущем контексте выполнения (текущий контекст выполнения ==, где бы вы ни находились в текущей иерархии объектов JavaScript с окном в качестве корня объект), но перед следующим событием, которое помещается в очередь.