БлогNot. Если встраивание видео тормозит (прекращает) загрузку страницы

Если встраивание видео тормозит (прекращает) загрузку страницы

В помощь хорошему человеку, обратившемуся за помощью. :)

Встраивание так называемых shorts-видео с YouTube в вашу страницу возможно, хотя кнопки "Встроить" после нажатия "Поделиться" для них нету. Тем не менее, нажав правой кнопкой мыши на опубликованном шортс-видео и выбрав пункт меню "Копировать HTML-код" вы можете получить основанную на теге iframe разметку для вставки на свои страницы.

Именно сделал наш давний читатель, быстро обнаружив, что после этого прекращается загрузка элементов страницы, которые должны были появиться в обработчике события "load", хотя с "обычными" видео, встраиваемыми с помощью такого же тега, проблемы не возникало.

Кнопка браузера "Обновить" при этом подолгу остаётся "крестиком", показывая, что процесс загрузки страницы не закончен.

Видимо, шортсы грузятся как-то по другому. :) В любом случае, очевидное решение выглядит таким:

Событие load означает, что браузер загрузил HTML и внешние ресурсы (картинки, стили и т.д.) полностью.

Событие DOMContentLoaded происходит, когда браузер полностью загрузил HTML, было построено DOM-дерево, но внешние ресурсы, такие как картинки и стили, могут быть ещё не загружены.

Замените для шаблона своей страницы обработчик первого события обработчиком второго, то есть, js-конструкцию

  window.addEventListener("load", function() { 
   //код
  });

на

  document.addEventListener("DOMContentLoaded", function() { 
   //код
  });

Само по себе указание атрибута loading="lazy" для тега iframe (которого, кстати, ютуб не делает) ситуации не поможет.

Вывод я проверил на этой странице, добавив сюда небольшое shorts-видео.

Шима

16.03.2024, 13:46 [164 просмотра]


теги: javascript html ошибка видео

К этой статье пока нет комментариев, Ваш будет первым