Уроки

Удаление отложенной загрузки

Отложенная загрузка — это отличная технология. Её задача — ускорить сайт. Это происходит за счёт загрузки изображений по мере того, как они становятся видны пользователю.

Воздержитесь от неё в следующих случаях:

  • При загрузке изображений, расположенных на первом экране. Если изображение видно на первом экране, то лучше загрузить его как можно раньше. Так, страница визуально загрузится быстрее и пользователь раньше начнёт изучать содержимое, даже если загрузка оставшихся файлов находится в процессе.
  • При загрузке мелких изображений. Такие картинки используются как иконки в интерфейсе. Лучше разместить их прямо в CSS или HTML коде в виде base64 строки.

Пример, как включение отложенной загрузки откладывает показ картинок, расположенных на первом экране.

<?php
$mode = $_GET['mode'] ?? '';
?><!DOCTYPE html>
<html>
    <head>
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <style>
            .product img {
                max-width:100%;
            }
            .product {
                position: relative;
            }
            .product .time {
                position: absolute;
                left: 5px;
                top: 5px;
                background-color: #fff;
                padding: 1px 4px;
            }
            .btn {
                color: #000;
                display: inline-block;
                margin-bottom: 5px;
                text-decoration: none;
                padding: 5px 10px;
                border: 1px solid #000;
                border-radius: 5px;
            }
            .btn:hover {
                background-color: #ddd;
            }
            .btn.active {
                background-color: #000;
                color: #fff;
            }

        </style>
        <script>
            // Функция, которая добавляет на изображение время окончания загрузки
            function endLoading(el) {
                var time = performance.now()/1000;
                el.parentNode.insertAdjacentHTML("beforeend", '<div class="time">'+time+' с</div>');
            }
        </script>
    </head>
    <body style="font-family: sans-serif;">
        Режим: <a class="btn <?=$mode === '' ? 'active' : ''?>" href="./lazyload_remove.php">Отключённая отложенная загрузка</a> <a class="btn <?=$mode === 'enable' ? 'active' : ''?>" href="./lazyload_remove.php?mode=enable">Включённая отложенная загрузка</a>
        <br />
        <p>Обратите внимание на разницу во времени загрузки изображения.</p>
        <div class="product">
            <img src="./photo.jpg?t=<?=microtime(true)?>" <?=$mode === 'enable' ? 'loading="lazy"' : ''?> onload="endLoading(this)" />
        </div>
        <?php for($i = 0; $i < 100;++$i) { ?>
        <script src="./10-kb-js.js?t=<?=microtime(true).'.'.$i?>"/></script>
        <?php } ?>
    </body>
</html>
<!DOCTYPE html>
<html>
    <head>
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <style>
            .product img {
                max-width:100%;
            }
            .product {
                position: relative;
            }
            .product .time {
                position: absolute;
                left: 5px;
                top: 5px;
                background-color: #fff;
                padding: 1px 4px;
            }
            .btn {
                color: #000;
                display: inline-block;
                margin-bottom: 5px;
                text-decoration: none;
                padding: 5px 10px;
                border: 1px solid #000;
                border-radius: 5px;
            }
            .btn:hover {
                background-color: #ddd;
            }
            .btn.active {
                background-color: #000;
                color: #fff;
            }

        </style>
        <script>
            // Функция, которая добавляет на изображение время окончания загрузки
            function endLoading(el) {
                var time = performance.now()/1000;
                el.parentNode.insertAdjacentHTML("beforeend", '<div class="time">'+time+' с</div>');
            }
        </script>
    </head>
    <body style="font-family: sans-serif;">
        Режим: <a class="btn active" href="./lazyload_remove.php">Отключённая отложенная загрузка</a> <a class="btn " href="./lazyload_remove.php?mode=enable">Включённая отложенная загрузка</a>
        <br />
        <p>Обратите внимание на разницу во времени загрузки изображения.</p>
        <div class="product">
            <img src="./photo.jpg?t=1788349038.8989"  onload="endLoading(this)" />
        </div>
                <script src="./10-kb-js.js?t=1788349038.8989.0"/></script>
                <script src="./10-kb-js.js?t=1788349038.8989.1"/></script>
                <script src="./10-kb-js.js?t=1788349038.8989.2"/></script>
                <script src="./10-kb-js.js?t=1788349038.8989.3"/></script>
                <script src="./10-kb-js.js?t=1788349038.8989.4"/></script>
                <script src="./10-kb-js.js?t=1788349038.8989.5"/></script>
                <script src="./10-kb-js.js?t=1788349038.8989.6"/></script>
                <script src="./10-kb-js.js?t=1788349038.8989.7"/></script>
                <script src="./10-kb-js.js?t=1788349038.8989.8"/></script>
                <script src="./10-kb-js.js?t=1788349038.8989.9"/></script>
                <script src="./10-kb-js.js?t=1788349038.8989.10"/></script>
                <script src="./10-kb-js.js?t=1788349038.8989.11"/></script>
                <script src="./10-kb-js.js?t=1788349038.8989.12"/></script>
                <script src="./10-kb-js.js?t=1788349038.8989.13"/></script>
                <script src="./10-kb-js.js?t=1788349038.8989.14"/></script>
                <script src="./10-kb-js.js?t=1788349038.8989.15"/></script>
                <script src="./10-kb-js.js?t=1788349038.8989.16"/></script>
                <script src="./10-kb-js.js?t=1788349038.8989.17"/></script>
                <script src="./10-kb-js.js?t=1788349038.8989.18"/></script>
                <script src="./10-kb-js.js?t=1788349038.8989.19"/></script>
                <script src="./10-kb-js.js?t=1788349038.8989.20"/></script>
                <script src="./10-kb-js.js?t=1788349038.8989.21"/></script>
                <script src="./10-kb-js.js?t=1788349038.8989.22"/></script>
                <script src="./10-kb-js.js?t=1788349038.8989.23"/></script>
                <script src="./10-kb-js.js?t=1788349038.8989.24"/></script>
                <script src="./10-kb-js.js?t=1788349038.8989.25"/></script>
                <script src="./10-kb-js.js?t=1788349038.8989.26"/></script>
                <script src="./10-kb-js.js?t=1788349038.8989.27"/></script>
                <script src="./10-kb-js.js?t=1788349038.8989.28"/></script>
                <script src="./10-kb-js.js?t=1788349038.8989.29"/></script>
                <script src="./10-kb-js.js?t=1788349038.8989.30"/></script>
                <script src="./10-kb-js.js?t=1788349038.8989.31"/></script>
                <script src="./10-kb-js.js?t=1788349038.8989.32"/></script>
                <script src="./10-kb-js.js?t=1788349038.8989.33"/></script>
                <script src="./10-kb-js.js?t=1788349038.8989.34"/></script>
                <script src="./10-kb-js.js?t=1788349038.8989.35"/></script>
                <script src="./10-kb-js.js?t=1788349038.8989.36"/></script>
                <script src="./10-kb-js.js?t=1788349038.8989.37"/></script>
                <script src="./10-kb-js.js?t=1788349038.8989.38"/></script>
                <script src="./10-kb-js.js?t=1788349038.8989.39"/></script>
                <script src="./10-kb-js.js?t=1788349038.8989.40"/></script>
                <script src="./10-kb-js.js?t=1788349038.8989.41"/></script>
                <script src="./10-kb-js.js?t=1788349038.8989.42"/></script>
                <script src="./10-kb-js.js?t=1788349038.8989.43"/></script>
                <script src="./10-kb-js.js?t=1788349038.8989.44"/></script>
                <script src="./10-kb-js.js?t=1788349038.8989.45"/></script>
                <script src="./10-kb-js.js?t=1788349038.8989.46"/></script>
                <script src="./10-kb-js.js?t=1788349038.8989.47"/></script>
                <script src="./10-kb-js.js?t=1788349038.8989.48"/></script>
                <script src="./10-kb-js.js?t=1788349038.8989.49"/></script>
                <script src="./10-kb-js.js?t=1788349038.8989.50"/></script>
                <script src="./10-kb-js.js?t=1788349038.8989.51"/></script>
                <script src="./10-kb-js.js?t=1788349038.8989.52"/></script>
                <script src="./10-kb-js.js?t=1788349038.8989.53"/></script>
                <script src="./10-kb-js.js?t=1788349038.8989.54"/></script>
                <script src="./10-kb-js.js?t=1788349038.8989.55"/></script>
                <script src="./10-kb-js.js?t=1788349038.8989.56"/></script>
                <script src="./10-kb-js.js?t=1788349038.8989.57"/></script>
                <script src="./10-kb-js.js?t=1788349038.8989.58"/></script>
                <script src="./10-kb-js.js?t=1788349038.8989.59"/></script>
                <script src="./10-kb-js.js?t=1788349038.8989.60"/></script>
                <script src="./10-kb-js.js?t=1788349038.8989.61"/></script>
                <script src="./10-kb-js.js?t=1788349038.8989.62"/></script>
                <script src="./10-kb-js.js?t=1788349038.8989.63"/></script>
                <script src="./10-kb-js.js?t=1788349038.8989.64"/></script>
                <script src="./10-kb-js.js?t=1788349038.8989.65"/></script>
                <script src="./10-kb-js.js?t=1788349038.8989.66"/></script>
                <script src="./10-kb-js.js?t=1788349038.8989.67"/></script>
                <script src="./10-kb-js.js?t=1788349038.8989.68"/></script>
                <script src="./10-kb-js.js?t=1788349038.8989.69"/></script>
                <script src="./10-kb-js.js?t=1788349038.8989.70"/></script>
                <script src="./10-kb-js.js?t=1788349038.8989.71"/></script>
                <script src="./10-kb-js.js?t=1788349038.8989.72"/></script>
                <script src="./10-kb-js.js?t=1788349038.8989.73"/></script>
                <script src="./10-kb-js.js?t=1788349038.8989.74"/></script>
                <script src="./10-kb-js.js?t=1788349038.8989.75"/></script>
                <script src="./10-kb-js.js?t=1788349038.8989.76"/></script>
                <script src="./10-kb-js.js?t=1788349038.8989.77"/></script>
                <script src="./10-kb-js.js?t=1788349038.8989.78"/></script>
                <script src="./10-kb-js.js?t=1788349038.8989.79"/></script>
                <script src="./10-kb-js.js?t=1788349038.8989.80"/></script>
                <script src="./10-kb-js.js?t=1788349038.8989.81"/></script>
                <script src="./10-kb-js.js?t=1788349038.899.82"/></script>
                <script src="./10-kb-js.js?t=1788349038.899.83"/></script>
                <script src="./10-kb-js.js?t=1788349038.899.84"/></script>
                <script src="./10-kb-js.js?t=1788349038.899.85"/></script>
                <script src="./10-kb-js.js?t=1788349038.899.86"/></script>
                <script src="./10-kb-js.js?t=1788349038.899.87"/></script>
                <script src="./10-kb-js.js?t=1788349038.899.88"/></script>
                <script src="./10-kb-js.js?t=1788349038.899.89"/></script>
                <script src="./10-kb-js.js?t=1788349038.899.90"/></script>
                <script src="./10-kb-js.js?t=1788349038.899.91"/></script>
                <script src="./10-kb-js.js?t=1788349038.899.92"/></script>
                <script src="./10-kb-js.js?t=1788349038.899.93"/></script>
                <script src="./10-kb-js.js?t=1788349038.899.94"/></script>
                <script src="./10-kb-js.js?t=1788349038.899.95"/></script>
                <script src="./10-kb-js.js?t=1788349038.899.96"/></script>
                <script src="./10-kb-js.js?t=1788349038.899.97"/></script>
                <script src="./10-kb-js.js?t=1788349038.899.98"/></script>
                <script src="./10-kb-js.js?t=1788349038.899.99"/></script>
            </body>
</html>

Тарифные планы для работы с сервисом

Доп. страницы

Для активной подписки
тратьте в течение года
Любой сайт
*0.3 - 3₽ / 1 страница

Дополнительные страницы для тарифа «Подписка».

Пополнение через личный кабинет.

*Цена зависит от активной подписки. Чем дороже тариф — тем дешевле дополнительные страницы.

Мы используем cookie. Продолжая пользоваться сайтом, вы соглашаетесь на обработку персональных данных в соответствии с политикой конфиденциальности. Соглашаюсь