Lazyload для html полей

+27
2.72K
Компонент организует "ленивую" загрузку изображений в html полях, обрабатываемых типографом.

Lazy loading – это метод оптимизации скорости загрузки медиафайлов, некритичных для отображения страницы или взаимодействия с пользователями. При «отложенной загрузке» изображения не будут загружаться, пока не понадобятся посетителю.

В текущей реализации, на мой взгляд, самая корректная "ленивая" загрузка. Во-первых, факт попадания изображения в поле зрения пользователя отслеживается с помощью API IntersectionObserver, которое встроено в браузер. Во-вторых, не меняется атрибут src, а используется тот факт, что

в случае если указан атрибут srcset то браузер показывает то, что в этом атрибуте, вне зависимости от того, что находится в атрибуте src.

Т.е. поисковик увидит в атрибуте src именно картинку, а не пиксельную заглушку, как в других реализациях.
И в третьих, добавлена проверка на поддержку API IntersectionObserver в браузере, и если ее нет, то компонент просто покажет все картинки пользователю как есть.

Скачать можно у меня в профиле /users/zau4man в файлах
Там же можно поблагодарить плюсиком в карму.

Установить по инструкции docs.instantcms.ru/manual/addons

Группе, к которой вы принадлежите, запрещено просматривать этот скрытый текст


Поставляется как есть.
Пожелания, баги можно писать тут.
0
Def Def 4 года назад #
а для виджетов, содержащих изображения такое же возможно?) идея отличная!
+1
Zau4man Zau4man 4 года назад #
Все можно.
Сперва и хотел делать компонент с опциями.
Но не могу нафантазировать.

Ну и в коде виджета/компонента должен быть хук, чтобы можно было внести правки в вывод изображений на просмотр.
0
Def Def 4 года назад #
может перехватывать как то сразу, если определилось изображение в виджете?
0
Def Def 4 года назад #
эх, жаль не пошла идея дальше поля(
+1
Zau4man Zau4man 4 года назад #
0
Killer's dream Killer's dream 4 года назад #
С этим компонентом вкладка "Контент" в админке виснет, и не грузит список.
0
Honko Honko 4 года назад #
подтверждаю эту проблему.
+1
maxisoft maxisoft 4 года назад #
Да есть такая ошибка в ближайшее время ее исправлю.
+1
maxisoft maxisoft 4 года назад #
ага есть и такое :)
0
Def Def 4 года назад #
починилось?)
+2
maxisoft maxisoft 4 года назад #
Да обновление доступно в каталоге.
0
4eremnykh 4eremnykh 4 года назад #
нет не починилось, не грузит, только заметил прочитав
0
4eremnykh 4eremnykh 4 года назад #
а не все норм сам ступил, в фильтре слова были набраны
0
4eremnykh 4eremnykh 4 года назад #
Вот что заметил! При включении данного компонента исчезают кнопки редактора при добавлении постов, событий, страниц и т.п. У кого также? И Хотелось бы спросить у разрабов компонента у zau4man и maxisoft

НО КОМПОНЕНТ УСТАНОВЛЕН ИМЕННО ОТ maxisoft
0
4eremnykh 4eremnykh 4 года назад #
не отображается именно Встроенный редактор, маркетип норм грузится и сторонний iredactor
+2
maxisoft maxisoft 4 года назад #
скоро будет патч для исправления данной проблемы.
0
Def Def 4 года назад #
Заметил, что ещё картинки нет в архиве. А в файле есть ссылка на картинку заглушку

Me-dent . Ru ещё какой то интересный скрипт использует)
0
Def Def 4 года назад #
Заметил, что ещё картинки нет в архиве. А в файле есть ссылка на картинку заглушку

Me-dent . Ru ещё какой то интересный скрипт использует)
0
Chambers Chambers 3 месяца назад #

На актуальной версии 2.16.2 работает без нареканий.

Еще от автора

Готовый сайт лендинг компании по подбору персонала
Делал два года назад. Заказчик сменил профиль и сайт не пригодился.
Выведем контент группы в списке полей группы
Поле позволяет в списке полей группы вывести последний контент этой группы.
Чиним реферальные ссылки биллинга при закрытом сайте
Проблема такая: если сайт закрыт, то при переходе по реферальной ссылке типа /r/1 пользователя перехватывает компонент Авторизация, и хук биллинга, ко
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.