Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 05.02.2016, 19:33
Новичок на форуме
Отправить личное сообщение для ZingerY Посмотреть профиль Найти все сообщения от ZingerY
 
Регистрация: 05.02.2016
Сообщений: 2

window.onload или window.addEventListener?
window.onload = main();

или
window.addEventListener("load", main);

Когда я начал изучать js мне показали второй вариант который я постоянно и использую, но в интернетах рекомендуют первый вариант.
Так какой вариант запуска кода после загрузки страницы все таки лучше или это одно и тоже?
Ответить с цитированием
  #2 (permalink)  
Старый 05.02.2016, 20:07
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

ZingerY, addEventListener используется для нескольких обработчиков. Свойство onload, конечно, использовать удобнее, но есть вероятность случайно перезаписать его.

В общем, onload - это если Вам нужен только один обработчик.

К примеру:

window.onload = function() {
   alert(1);
};

window.onload = function() {
   alert(2);
};

//Выведется только "2", так как идёт перезапись свойства.



window.addEventListener('load', function() {
   alert(1);
});

window.addEventListener('load', function() {
   alert(2);
});

//Выполнятся оба обработчика



А если по делу, то для отлова загрузки документа, я бы Вам советовал использовать DOMContentLoaded, так как onload срабатывает только после окончания загрузки всех изображений и т.д.

window.addEventListener('DOMContentLoaded', function() {
   alert('Ready!');
});



Сообщение от ZingerY
но в интернетах рекомендуют первый вариант.
Так какой вариант запуска кода после загрузки страницы все таки лучше или это одно и тоже?
Второй вариант лучше и правильней.
Ну а если говорить об удобстве, то - первый.

Последний раз редактировалось ruslan_mart, 05.02.2016 в 20:11.
Ответить с цитированием
  #3 (permalink)  
Старый 05.02.2016, 20:19
Новичок на форуме
Отправить личное сообщение для ZingerY Посмотреть профиль Найти все сообщения от ZingerY
 
Регистрация: 05.02.2016
Сообщений: 2

Ruslan_xDD,
Большое спасибо за подробные разъяснения!
Теперь благодаря вам мои странички будут загружаться намного быстрее)
Ответить с цитированием
  #4 (permalink)  
Старый 05.02.2016, 21:21
hhh hhh вне форума
Профессор
Отправить личное сообщение для hhh Посмотреть профиль Найти все сообщения от hhh
 
Регистрация: 19.11.2013
Сообщений: 150

Ruslan_xDD,
DOMContentLoaded, то же самое что и document.ready в jquery?
Ответить с цитированием
  #5 (permalink)  
Старый 05.02.2016, 21:27
Профессор
Отправить личное сообщение для Mess4me Посмотреть профиль Найти все сообщения от Mess4me
 
Регистрация: 03.11.2014
Сообщений: 263

hhh,
Ответить с цитированием
  #6 (permalink)  
Старый 05.02.2016, 22:24
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

hhh, да, аналогично вставки скриптов в конец body.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
window.onload bubanay Общие вопросы Javascript 2 28.10.2015 21:46
Объект не поддерживает это свойство или метод load_081112_0953.js 1auto1 Internet Explorer 1 13.04.2011 21:59
В зависимости от referrer выводить рекламу adsene или зорьки wlad2 Общие вопросы Javascript 12 19.12.2010 01:02
Как узнать свернуто окно браузера или нет. bar-boss Events/DOM/Window 3 25.09.2008 16:09