Я сейчас работаю в AngularJS, но хотел как можно больше придерживаться простого JS.
Я присоединяю директиву к корневому разделу моего модуля и получаю доступ к тому, что мне нужно, через $element
объект в функции ссылки. Я использую обработку прокрутки событий и позиционирование элементов относительно области просмотра Element.getBoundingClientRect()
- я прочитал, что это неэффективно, поэтому я смотрю на Intersection Observer API, но сейчас моя проблема заключается в отложенной загрузке элемента.
Причина для всего модуля в том, что он может содержать теги <img>
, но также и другие текстовые теги, и что было бы лучше просто лениво загрузить модуль в целом. И я пытаюсь сделать директиву универсальной, чтобы вы как будто прикрепляли директиву, а она просто загружала все, что к ней прикреплено.
Из того, что я прочитал, много ленивой загрузки используется строго для изображений и заменяет атрибут src
там, где это необходимо, но я ничего не читал при ленивой загрузке целого элемента. Я понимаю, что эффективность выполнения этого на img против целого div незначительна, так как основная часть находится в изображении.
Если нет способа сделать это, я с удовольствием остановлюсь на том, чтобы просто сосредоточиться только на изображениях, выполнив поиск этого тега в $element
и выполнив типичную замену src (возможно, просто с пакетом) - просто хотел чтобы узнать, есть ли способ реализовать это сначала для всего раздела div.
Спасибо
Редактировать: Я хотел добавить, что я читал о людях, которые хотят ленивых директив / контроллеров загрузки - это не то, что в моем случае директива обрабатывает ленивую загрузку своей области видимости. Это связано с тем, что модуль (с прикрепленной директивой) будет появляться на странице несколько раз и должен обрабатывать свою собственную отложенную загрузку.