Это не альтернатива. У самого эвала нет уникальной проблемы с безопасностью, проблема именно в динамическом исполнении возможно небезопасного кода. Через сет таймаут ты его выполнишь, через эвал или через вставку скрипта ничего не изменится.
Тебе скорее нужна функция, которая принимает оператор и возвращает функцию, которая принимает аргумент и возвращает функцию, которая принимает аргумент и возвращает результат
Ребят, такой вопрос: если тегу скрипт ставим defer, а скрипт настолько жирный, что загрузка завершится когда парсинг документа уже прекратился(DOMContentLoaded уже произошло), то скрипт запускается по факту загрузки?
Ребят, такой вопрос: если тегу скрипт ставим defer, а скрипт настолько жирный, что загрузка завершится когда парсинг документа уже прекратился(DOMContentLoaded уже произошло), то скрипт запускается по факту загрузки?
В спеке просто не описывается такой кейс. Получается, выполнение после парсинга и до DOMContentLoaded не гарантируется?
Не понял вопроса. Вот парсит движок страницу, попался скрипт, он его парсит и выполняет сразу, построение дом останавливается. А если дефер то просто продолжает парсить и дом строить.
Ребят, такой вопрос: если тегу скрипт ставим defer, а скрипт настолько жирный, что загрузка завершится когда парсинг документа уже прекратился(DOMContentLoaded уже произошло), то скрипт запускается по факту загрузки?
> DOMContentLoaded уже произошло Я понял про что ты кажется. Вот тут ошибка у тебя. DOMContentLoaded не может "уже" произойти, он будет ждать пока скрипты загрузятся.
Не понял вопроса. Вот парсит движок страницу, попался скрипт, он его парсит и выполняет сразу, построение дом останавливается. А если дефер то просто продолжает парсить и дом строить.
defer якобы гарантирует, что загружаемый на фоне(non-parser-blocking) скрипт выполняетя в промежутке после завершения парсинга разметки и до события DOMContentLoader