@Roweb
Верстальщик

Какой код лучше? Какие преимущества у 2 вариантов?

1 вариант
window.addEventListener('load', function() {
			let header = document.querySelector('.header');
			let content = document.querySelector('.content');
			let footer = document.querySelector('.footer');
			let btn = document.querySelector('.button');

			btn.addEventListener('click', function() {
				// манипуляции с header, content, footer
			})
		})

2 вариант
window.addEventListener('load', function() {
			let header = document.querySelector('.header');
			let content = document.querySelector('.content');
			let footer = document.querySelector('.footer');
			let btn = document.querySelector('.button');

			btn.addEventListener('click', function() {
				func(header, content, footer)
			})
		})

		function func(a, b, c) {
			// манипуляции с header, content, footer
		}


С точки зрения простоты написания и наглядности первый вариант выигрывает. Будет ли второй вариант производительнее, так как функции будут объявлены еще до загрузки страницы
  • Вопрос задан
  • 105 просмотров
Пригласить эксперта
Ответы на вопрос 2
hzzzzl
@hzzzzl
первый, нафик надо перекидывать объекты туда-сюда ради единственного onload

btn.addEventListener('load', function() - это когда кнопка загрузилась?
Ответ написан
like-a-boss
@like-a-boss
Признайся,тебяТянетНаКодМужика,ты—программный гей
1. Производительнее будет, если вы научитесь выбирать элементы в контексте, который вы уже некогда сохранили в переменную. Если требуется пояснение этого предложения - вперёд!

2. Зачем вам слушать load внутри load? Ликвидировать!
3. Замените на DOMContentLoaded, проку будет больше.

Пояснение п1.
let content = document.querySelector('.content'),
    btn = content.querySelector('.button'); // батон живёт внутри .content(к примеру). Так что нет
                                            // необходимости искать его внутри всего документа.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы