ky0, есть горе-оптимизаторы, которые тащат в сайт-визитку, к примеру, кучу бэк-энд функционала + 30 скриптов на фронте. И кричат, что они используют проверенные решения, а не велосипедят.
Только мне на такие сайты смешно смотреть, где строк контента меньше, чем строк программного кода.
ky0, слабо верится, что в современном интернете не осталось людей, не использующий пакетные менеджеры и прочие упаковщики.
Мой вопрос в первую очередь к ним.
При чём тут велосипед? Любой конфик можно собрать вручную, можно npm и иже с ним. Разница в подходе, а не в написании велосипедов. Меня интересует именно такой подход.
И не жаль было время тратить на заведомо бесполезный ответ...
Этот путь, как я указал уже в вопросе, мне известен. Нужен ответ в формате рамок вопроса.
Сергей Соколов, уф...
Какая там цепочка, при чём тут она?
На кнопе висит единственный обработчик клика, получающий в качестве аргумента объект события. Вот он, обработчик:
function isTrusted(e) {
div.innerText = e.isTrusted ? "Trusted" : "Жулик!";
setTimeout(() => {
const w = window.open("https://ya.ru", "Yandex");
div.innerText = w ? "Можно верить" : "Ложь!";
}, 1000);
}
Сергей Соколов, это не правильный подход. Поскольку метод open также будет искать событие пользователя. А когда не найдёт - сделает выводы о программном происхождении вызова. Это как тараканов убивать, отпиливая ножки у шифоньера.
Сергей Соколов, так, если нет сгенерированного события броузером, тогда что можно проверить? Ведь действие пользователя - понятие сугубо абстрактное, а вот результат его - вполне конкретный сгенерированный объект события. В нём есть информация и о действии, и о инициаторе его.
Отвечу проще - если никто ничего не делал, как понять: кто этот никто?
Илья Ростопка, +1
То же самое могу сказать. Ну не работал с этими фреймворками. Про Vue читал, их подход понравился, особенно реализация виртуального DOM, но руки не дошли изучить нюансы.
Светлана Галенко, я всегда говорю заказчикам, что ВСЁ, что явно не указано в ТЗ - остаётся на моё усмотрение. Если результат моих усилий их не устроил, как говорится, см. п. 1.
То есть да, я сделаю любую корректировку по новому ТЗ, но это уже другая работа, не входящая в оговоренную сумму по первой.
А как он создаётся?
Можно присвоить id при создании, можно пробежать по созданному NodeList и назначить каждому элементу свой id, можно вообще не назначать, а использовать метод children() родительского элемента...
Только мне на такие сайты смешно смотреть, где строк контента меньше, чем строк программного кода.