Size: a a a

2020 August 04

M

Mr. Nobody in pro.js
Алексей
defer якобы гарантирует, что загружаемый на фоне(non-parser-blocking) скрипт выполняетя в промежутке после завершения парсинга разметки и до события DOMContentLoader
Да.
источник

M

Mr. Nobody in pro.js
Т.е. достаточно в скриптах слушать DOMContentLoader.
источник

А

Алексей in pro.js
Неужели DOMContentLoader учитывает скрипт, у которого defer?
источник

А

Алексей in pro.js
defer типа не блокирует парсер, но событию не дает выстрелить пока не загрузится?
источник

А

Алексей in pro.js
Пахнет уже событием load
источник

M

Mr. Nobody in pro.js
Алексей
Неужели DOMContentLoader учитывает скрипт, у которого defer?
Ну ты можешь сэмулировать долгую отдачу на своём бэке и провести тест :)
источник

M

Mr. Nobody in pro.js
Я спецификацию не читал, но доверяю MDN.
источник

А

Алексей in pro.js
Разумеется) Просто поленился и пошел к народу)
источник

M

Mr. Nobody in pro.js
defer
Это логический атрибут, указывающий браузеру, что скрипт должен выполняться после разбора документа, но до события DOMContentLoaded.
Скрипты с атрибутом defer будут предотвращать запуск события DOMContentLoaded до тех пор, пока скрипт не загрузится полностью и не завершится его инициализация.
источник

А

Алексей in pro.js
Да, я тоже читал этот текст на MDN. И задался вопросом: допустим, что мы верим в то, что скрипт выполнится до DOMContentLoaded и внутри него вешаем на документ обработчик по этому событию. А что если файл жирный - браузер будет оттягивать из-за тяжеловесности файла событие DOMCOntentLoaded, чтобы обеспечить поведение атрибута defer?
источник

А

Алексей in pro.js
Вот такой ход мысли был
источник

А

Алексей in pro.js
Но да, походу придется тестить
источник

M

Mr. Nobody in pro.js
Алексей
Да, я тоже читал этот текст на MDN. И задался вопросом: допустим, что мы верим в то, что скрипт выполнится до DOMContentLoaded и внутри него вешаем на документ обработчик по этому событию. А что если файл жирный - браузер будет оттягивать из-за тяжеловесности файла событие DOMCOntentLoaded, чтобы обеспечить поведение атрибута defer?
> скрипт выполнится до DOMContentLoaded
Не выполнится а проинициализируется. При выполнении он должен увидеть это событие.
источник

А

Алексей in pro.js
А, бл, прости, я не прочитал до конца скинутый тобой текст, подумал ты MDN цитируешь
источник

M

Mr. Nobody in pro.js
Алексей
А, бл, прости, я не прочитал до конца скинутый тобой текст, подумал ты MDN цитируешь
Это mdn и есть.
источник

А

Алексей in pro.js
Я невнимателен
источник

А

Алексей in pro.js
как всегда проблема была в "точке с запятой"
источник

А

Алексей in pro.js
источник

M

Mr. Nobody in pro.js
Ну там да, проитворечиво выглядит. В первом абзаце про выполнение, во втором про инициализацию. Но по логие это не выполнение, а парсинг/подготовка. Если бы он выполнился до события то он бы его не поймал. Ньюансы просто.
источник

M

Mr. Nobody in pro.js
Алексей
как всегда проблема была в "точке с запятой"
:)
источник