Загальна ідея полягає в тому, що window.onload запускається, коли вікно документа готове до представлення, а document.onload запускається, коли дерево DOM (побудоване з коду розмітки в документі) завершено .
В ідеалі, підписка на події дерева DOM , дозволяє керувати екранами через Javascript, не приносячи майже ніякого завантаження процесора . Навпаки, це window.onloadможе зайняти деякий час , коли пожежа ще потрібна , проаналізована та завантажена.
►Тест-сценарій:
Для того, щоб спостерігати різницю і як ваш браузер добірних реалізують вищезгадані обробник подій , просто вставте наступний код в вашому документі - <body>- тег.
<script language="javascript">
window.tdiff = []; fred = function(a,b){return a-b;};
window.document.onload = function(e){
console.log("document.onload", e, Date.now() ,window.tdiff,
(window.tdiff[0] = Date.now()) && window.tdiff.reduce(fred) );
}
window.onload = function(e){
console.log("window.onload", e, Date.now() ,window.tdiff,
(window.tdiff[1] = Date.now()) && window.tdiff.reduce(fred) );
}
</script>
►Результат:
Ось така поведінка, яка спостерігається для Chrome v20 (і, мабуть, більшості сучасних браузерів).
- Жодної
document.onloadподії.
onloadзапускається двічі, коли оголошується всередині <body>, один раз, коли оголошується всередині <head>(де подія діє тоді якdocument.onload ).
- підрахунок та дія залежно від стану лічильника дозволяє наслідувати обидва події.
- Альтернативно оголосити
window.onloadобробник подій у межах HTML- <head>елемента.
►Прикладний проект:
Код, наведений вище, взято з бази даних коду ( і ) цього проекту .index.htmlkeyboarder.js
Щоб отримати список обробників подій об’єкта вікна , зверніться до документації MDN.
windowподії:onloadтаDOMContentLoaded. Приклад використання :,window.addEventListener('DOMContentLoaded', callback). Станом на середину 2019 року сумісний з усіма основними браузерами. ----- developer.mozilla.org/en-US/docs/Web/API/Window/… ------ developer.mozilla.org/en-US/docs/Web/API/Window/load_event