JS властивість Event.load


Загальний опис

Подія load викликається, коли весь вміст сторінки завантажений та повністю доступний для користувача. Це включає всі зовнішні ресурси, такі як зображення, файли стилів, скрипти тощо. На відміну від події DOMContentLoaded, яка спрацьовує після завантаження тільки HTML-документа, load чекає завершення завантаження всіх ресурсів.

Подію load можна застосовувати як до window, так і до окремих елементів, таких як зображення або iframe. Якщо прив'язати цю подію до window, то вона спрацьовуватиме, коли весь документ і ресурси будуть повністю завантажені. Це корисно, наприклад, коли потрібно виконати певні дії тільки після того, як всі елементи сторінки доступні для взаємодії.

Приклад використання:

window.addEventListener('load', function() {
  console.log('Сторінка повністю завантажена');
});

В цьому прикладі функція запускається тільки після того, як весь документ, разом із зображеннями, стилями та іншими ресурсами, буде повністю завантажений. Це корисно для ініціалізації поведінки, що залежить від зображень або інших ресурсів, які можуть завантажуватись довше.

Подію load також можна використовувати з окремими ресурсами, наприклад, зображеннями:

const img = document.querySelector('img');
img.addEventListener('load', function() {
  console.log('Зображення завантажено');
});

Цей приклад дозволяє перевірити, чи зображення було повністю завантажене, що може бути корисним для налаштування його відображення або запуску певних анімацій після завантаження.

Подія load є незамінною, коли важливо, щоб усі ресурси були доступні перед тим, як починати виконувати складну логіку або взаємодії з елементами сторінки. Це може включати динамічне завантаження контенту, анімації або обчислення, які залежать від розмірів та параметрів зображень та інших елементів.

автор: Bond

Порада

Завжди використовуйте стрілкові функції для подій, коли потрібно мати доступ до контексту об'єкта, що запускає подію. У випадку класичних функцій, контекст може втратитись, що призведе до неочікуваних результатів.

автор: Bond
Порада

Якщо плануєте ініціалізувати роботу з великими наборами даних після завантаження сторінки, корисно поєднувати подію load з асинхронними операціями, наприклад, завантаженням даних через API. Це допоможе розподілити навантаження і прискорити відображення контенту для користувача.

автор: Bond
Порада

Для оптимізації продуктивності важливо розуміти, що подія load чекає завантаження всіх ресурсів сторінки. Якщо вам не потрібно чекати завантаження зображень або стилів, можливо, краще використовувати подію DOMContentLoaded, яка спрацьовує раніше.

автор: Bond

Синтаксис

window.addEventListener('load', function() {
  // Ваш код тут
});

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE
66 57 11.1 53 16
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
66 66 57 11.3
Підтримка: серверні переглядачі
Переглядач Node.js Deno
15.0.0 1.0

Приклади

+ запропонувати свій приклад у пісочниці

Тут код відстежує завантаження всіх зображень на сторінці. Як тільки останнє зображення завантажене, виводиться повідомлення. Це підходить для випадків, коли важливо знати статус всіх зображень, наприклад, для створення галереї.

HTML

<img src="/img/logo.svg" width="100" alt="Демо">

JS

const images = document.querySelectorAll('img');
let loadedImages = 0;

images.forEach(img => {
  img.addEventListener('load', function() {
    loadedImages++;
    if (loadedImages === images.length) {
      console.log('Всі зображення завантажено');
    }
  });
});
автор: Bond

У цьому прикладі після того, як сторінка повністю завантажена, виконується запит до API для отримання додаткових даних. Це допомагає зберегти швидкість відображення сторінки, адже контент не завантажується до події load.

window.addEventListener('load', function() {
  fetch('https://api.example.com/data')
    .then(response => response.json())
    .then(data => console.log(data))
    .catch(error => console.error('Помилка завантаження даних:', error));
});
автор: Bond

Цей приклад ілюструє використання події load для активації кнопки після повного завантаження сторінки, а також демонструє взаємодію з користувачем через події.

автор: Bond

Коментарі

Коментарів ще немає — будьте першим!

Відповідь для

Увійдіть — коментар з'явиться одразу, без капчі й очікування перевірки.

Пропозиція правки

Ваша версія — : після перевірки замінить чинну. Нова порада чи нотатка — з'явиться на сторінці після перевірки.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія секції «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія опису «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Зворотний зв'язок
Вхід