Size: a a a

JavaScript — русскоговорящее сообщество

2020 July 26

B

BPOH in JavaScript — русскоговорящее сообщество
Это тоже не он но спасибо что попробовал помочь)
источник

B

BPOH in JavaScript — русскоговорящее сообщество
p l отличаются
источник

DC

Dmitry Croft in JavaScript — русскоговорящее сообщество
Don`t Worry
А почему вы решили что он блокирует first paint. Я повторил ваш код со стаковерфлоу, только добавив еще один абзац текста который не будет удаляться в скрипте, и этот абцаз всегда появляется, а первый абзац иногда при перезагрузке действительно не появляется видимо потому что он уже удалился
Даже профайлер показывает что обработчик на DOMContentLoaded заблокировал first paint
источник

D

Don`t Worry in JavaScript — русскоговорящее сообщество
Потестил, ну да, похоже, что ты прав. Лучше всего это видно в edge и лисе девелоперской
источник

DC

Dmitry Croft in JavaScript — русскоговорящее сообщество
Don`t Worry
Потестил, ну да, похоже, что ты прав. Лучше всего это видно в edge и лисе девелоперской
И главное хз почему
источник

D

Don`t Worry in JavaScript — русскоговорящее сообщество
А хром даже с отключенным кэшем рендерит мне страницу или это я старую вижу. Хз
источник

DC

Dmitry Croft in JavaScript — русскоговорящее сообщество
По идее так не должно же быть
источник

KS

Konstantin Sedykh in JavaScript — русскоговорящее сообщество
Dmitry Croft
По идее так не должно же быть
аааа, ты про это. а почему он не должен блокировать? построение дерева !==рендеру страницы
источник

DC

Dmitry Croft in JavaScript — русскоговорящее сообщество
Konstantin Sedykh
аааа, ты про это. а почему он не должен блокировать? построение дерева !==рендеру страницы
Так тогда браузер рисует асинхронно, или DOMContentLoaded обработчики вызываются синхронно перед отрисовкой?
источник

D

Don`t Worry in JavaScript — русскоговорящее сообщество
Dmitry Croft
По идее так не должно же быть
Короче как я понял это нормальное поведение события DOMContentLoaded, так и задумывалось оно, а если тебе нужно, чтобы ДОМ появился нужно использовать async/defer и убрать из скрипта DOMContentLoaded
источник

KS

Konstantin Sedykh in JavaScript — русскоговорящее сообщество
Dmitry Croft
Так тогда браузер рисует асинхронно, или DOMContentLoaded обработчики вызываются синхронно перед отрисовкой?
браузер рисует синхронно
источник

DC

Dmitry Croft in JavaScript — русскоговорящее сообщество
Konstantin Sedykh
браузер рисует синхронно
Тогда получается что обработчики на DOMContentLoaded синхронные?
источник

DC

Dmitry Croft in JavaScript — русскоговорящее сообщество
Вот я щас их кучу навесил, браузер уже минуту ничего не рисует
источник

D

Don`t Worry in JavaScript — русскоговорящее сообщество
Dmitry Croft
Тогда получается что обработчики на DOMContentLoaded синхронные?
да, на русской MDN так и написано, что удивительно на англе ни слова об этом
источник

DC

Dmitry Croft in JavaScript — русскоговорящее сообщество
Don`t Worry
да, на русской MDN так и написано, что удивительно на англе ни слова об этом
Не-а не совсем
источник

DC

Dmitry Croft in JavaScript — русскоговорящее сообщество
Щас расскажу
источник

DC

Dmitry Croft in JavaScript — русскоговорящее сообщество
Don`t Worry
да, на русской MDN так и написано, что удивительно на англе ни слова об этом
Смотрите еще какая херня (определял по console.log)

           1. Сначала все микротаски исполнились
           2. Потомисполнилось 3 setTimeout 0
           3. Потом исполнились друг за другом все DOMContentLoaded
           4. Потом остальные setTimeout 0
источник

DC

Dmitry Croft in JavaScript — русскоговорящее сообщество
Получается что асинхронно, но отрисовка всё равно блокируется пока все DOMContentLoaded не отработали
источник

DC

Dmitry Croft in JavaScript — русскоговорящее сообщество
Могу код скинуть, что я не ебанутый
источник

DC

Dmitry Croft in JavaScript — русскоговорящее сообщество
Dmitry Croft
Получается что асинхронно, но отрисовка всё равно блокируется пока все DOMContentLoaded не отработали
Какие ещё есть идеи для Обьяснения? Я только пока так могу
источник