Если код нужен позже по событию, загрузите его динамически в нужный момент. defer откладывает исполнение до разбора HTML, но не до произвольного пользовательского действия.
Как управлять загрузкой и выполнением внешнего JavaScript-файла, если не нужно исполнять его сразу?
Если код нужен позже по событию, загрузите его динамически в нужный момент. defer откладывает исполнение до разбора HTML, но не до произвольного пользовательского действия.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Если код нужен позже по событию, загрузите его динамически в нужный момент. defer откладывает исполнение до разбора HTML, но не до произвольного пользовательского действия.
Для модулей подходит import() в обработчике; для классического файла — создание script с обработкой load/error. Предварительную загрузку можно подсказать preload/modulepreload, но это отдельный шаг от исполнения. async не означает «подождать»: он запускает скрипт, когда тот готов.