Я никогда не забуду момент, когда мое веб-приложение зависло во время демонстрации. Я уверенно демонстрировал изящный пользовательский интерфейс, а затем — бац — все остановилось. Ужасное сообщение «не отвечает» появилось как неудачный каламбур на технической конференции....
Я никогда не забуду момент, когда мое веб-приложение зависло во время демонстрации. Я уверенно демонстрировал изящный пользовательский интерфейс, а затем — бац — все остановилось. Ужасное сообщение «не отвечает» появилось как неудачный каламбур на технической конференции. Я был огорчен! Но этот момент разжег во мне любопытство по поводу того, что, как я слышал, шептали в кругах разработчиков: «Основной поток браузера стоит дорого».
Вы когда-нибудь задумывались, почему ваше веб-приложение работает медленно, даже если вы думаете, что все оптимизировали? Виновник часто лежит в основном потоке, сердце браузера, которое отвечает за рендеринг, выполнение JavaScript и взаимодействие с пользователем. Это похоже на оживленную кухню ресторана; если один повар перегружен заказами, все заведение забито.
Понимание основного потока
Итак, что именно делает основной поток? По моему опыту, он отвечает за выполнение JavaScript, отображение обновлений DOM и обработку пользовательских событий. Если он увяз в тяжелых вычислениях или длительных задачах, пользователям остается смотреть на индикатор загрузки. Вы этого не хотите! Я помню, как погружался в проект React, где у меня просто сработало слишком много прослушивателей событий. Поначалу было здорово писать код, но однажды