По умолчанию сторонние ресурсы загружаются сразу после загрузки страницы, однако такой подход может излишне ее замедлить. Если сторонний контент не критичен, затраты на производительность можно снизить за счет отложенной загрузки.
Фасад — это статический элемент, который выглядит как реальный встроенный объект, при этом не работает и, следовательно, существенно снижает нагрузку на страницу.
Например, загрузка видео с YouTube дополнительно загружает несколько скриптов, свой видео плеер. А зачем нам сразу грузить то, что может и не понадобиться. Сделаем загрузку видео только при наведении курсора на наш фасад – изображение-заглушку
- Создаем HTML блок-фасад
<div class="fasad-youtube"><img src="/images/fasad-youtube.webp" loading="lazy" alt="Заглушка для видео" width="644" height="362"></div> - Добавляем скрипт, лучше в конце страницы
<script type="text/javascript">window.addEventListener('load', ()=>{const youtubeFasad = document.querySelector('.fasad-youtube');const listener = ()=> {youtubeFasad.innerHTML = "";// create iframeconst iframeYoutube = document.createElement("iframe");// Add attributesiframeYoutube.src = "https://www.youtube.com/embed/3GAwS4B75jY?controls=0";iframeYoutube.width = "644";iframeYoutube.height = "362";iframeYoutube.frameBorder ="0";iframeYoutube.scrolling = "0";iframeYoutube.style.border= "none";youtubeFasad.appendChild(iframeYoutube);youtubeFasad.removeEventListener("mousemove", listener, false);};youtubeFasad.addEventListener("mousemove", listener, false);})</script> - Все
