Если встраивание видео тормозит (прекращает) загрузку страницы
В помощь хорошему человеку, обратившемуся за помощью. :)
Встраивание так называемых 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 просмотра]