Гость

Нажмите для авторизации/регистрации

  • Назад
  • Меню
  • Статьи
    • Все
    • Интернет и технологии
    • Laravel и WebDev
    • Linux, Windows, Docker, Etc
    • Новости
    • Прочее
    • Геймдев
    • Смотри как я умею
  • Информация
    • Оферта на дополнительные функции
    • Политика конфиденциальности
    • Тарифы
    • Пользовательское соглашение

Простой LazyLoad для сайта на Laravel и не только

  1. Главная
  2. Статьи
  3. Laravel и WebDev
  4. Простой LazyLoad для сайта на Laravel и не только
Простой LazyLoad для сайта на Laravel и не только
  • 25/11/2021
  • Chebukin Pavel
  • 312 просмотров
  • 0 комментариев

Простой LazyLoad для сайта на Laravel и не только

Что такое LazyLoad?

Суть метода LazyLoad - подгружать картинки не в момент загрузки страницы, а по мере ее просмотра. Это облегчает первоначальную загрузку страницы, скорость отображения пользователям и отношение поисковых систем.

На многих своих сайтах я использую LazyLoad картинок, для ускорения загрузки самого сайта. Сделать это легко.

Заходим на сайт и сохраняем себе в папку public/js файл  отсюда. Саму полную документацию вы можете посмотреть в гитхабе автора библиотеки. Мы же пройдемся кратко и по сути.

Подключаем библиотеку перед закрытием тега </body>, там же где у нас подключены и другие скрипты.

<script src="/js/yall.min.js"></script>

После него добавляем скрипт на выполнение функции ленивой загрузки:

<script>
    document.addEventListener('DOMContentLoaded',function(){
        yall();
    });
</script>

Половина дела сделана - сама библиотека подключена. Теперь нужно только настроить саму ленивую загрузку картинок в тегах. Для этого берем одну минимальную картинку. Я обычно беру картинку в 1 пиксель прозрачную или же использую готовую картинку под блок, чтобы не было сдвигов верстки. К примеру скачиваем где-нибудь однопиксельную картинку с прозрачным фоном png или подходящую по цвету фона jpg. Сохраняем ее в папке /public/images/lazyload.png,  так она будет доступна у нас по ссылке /images/lazyload.png

Дальше наша задача заменить аттрибут src аттрибутом data-src, так чтобы data-src указывал на путь к нашей картинке, а сам был src="/images/lazyload.png". При этом в тег <img> так же добавляем класс lazy.

Таким образом, если изначальная картинка у нас была:

<img class="img-90 rounded-circle" src="/themes/front/assets/images/dashboard/1.png" alt="">

то после проделанных действия должна выглядеть как

<img class="img-90 rounded-circle lazy" src="/images/lazyload.png" data-src="/themes/front/assets/images/dashboard/1.png" alt="">

После изменений сохраняем и проверяем. Это основное действие.

Ок, но как быть с картинками загружаемыми через текстовый редактор, или визивиг?

Для этого нужно вкручивать автозамену. Самый примитивный пример на PHP выглядит как-то так:

$body = str_replace('img class="lazy" src="/images/imgload_small.png" data-src=','img class="lazy" src="/images/lazyload.png" data-src=',$body);

В этом примере мы у всех тегов img с аттрибутом src меняем параметры и добавляем класс. Все, как и нужно. Но нужно понимать что пользователи, как всегда, могут что-то учудить, а значит пример нуждается в доп. обработке.

Отзывы

Пока нет комментариев


Для того чтобы оставить комментарий, авторизуйтесь.
Понравился материал? Поделись!
Онлайн-песочницы для кода
Дек18
Онлайн-песочницы для кода

Когда возникает потребность проверить какой-то простенький алгоритм или набросать элемент, использовать для этого файлы рабочего проекта или создавать новый не лучшая идея. Именно по этой причине сейчас существуют всякого рода песочницы. Один позволяют скомпилировать код системных языков и вывести результат, другие набросать HTML+CSS+JS схемку и отладить ее. В любом случае,...

  • Chebukin Pavel
  • 0
  • 18.12.2021 21:33
Laravel: CKEditor 4 + Сниппет кода
Ноя24
Laravel: CKEditor 4 + Сниппет кода

Символично на сайтах по ларавел начать наверное с какой-нибудь темы аля "сделать блог". Возможно в дальнейшем и я напишу такой материал. Но в этом я хочу показать как сделать интеграцию визуального редактора CKEditor со сниппетом кода. Саму установку CKEditor и интеграцию загрузки картинок опишу отдельным материалом. Здесь же, условимся что используется...

  • Chebukin Pavel
  • 0
  • 24.11.2021 21:24
CKEditor 4 + Загрузка картинок в Laravel
Ноя28
CKEditor 4 + Загрузка картинок в Laravel

В прошлом материале, я уже писал о подключении к CKEditor 4 плагина подсветки синтаксиса. Но так же писал что опишу загрузку картинок через визуальный редактор. Все делается достаточно просто. Вступление  Оговорюсь сразу, что не использую сторонние библиотеки для большего контроля над самим подключением и редактором, так и для того чтобы...

  • Chebukin Pavel
  • 0
  • 28.11.2021 22:38
Laravel + TinyMCE
Дек02
Laravel + TinyMCE

Какой сайт сейчас может обойтись без редактора? Да, можно добавить поля типа file и загружать. Но когда в материале нужен целых несколько картинок, то это неудобно и не технологично. Но чтобы редактор умел загружать картинку, как редактор должен знать как ее отправить, так и серверная часть знать то, как ее...

  • Chebukin Pavel
  • 0
  • 02.12.2021 20:06
Актуально ли использовать PHP framework Laravel в 2021 и 2022 году?
Дек09
Актуально ли использовать PHP framework Laravel в 2021 и 2022 году?

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

  • Chebukin Pavel
  • 0
  • 09.12.2021 22:32
Парсинг и создание ботов - ZennoPoster, Python, PHP
Дек27
Парсинг и создание ботов - ZennoPoster, Python, PHP

Что такое парсинг и бот-системы/сети? Парсинг это получение данных в автоматическом режиме с сайта-донора. По сути этим занимаются или отдельные парсеры, или целые бот-системы. К примеру, гугл использует, как и другие поисковики целую свою сеть ботов. Часть из них получает ссылки, часть переходит по ним и анализирует содержимое. Задачи по...

  • Chebukin Pavel
  • 0
  • 27.12.2021 12:34

Copyright 2022 © All rights reserved.

Мы в: