Как lazyload что угодно

Я знаю, что умею загружать "образ", используя некоторую стороннюю библиотеку jquery. Есть ли вообще-то ленивая нагрузка примерно на что-нибудь вроде контейнера элементов

, например, когда пользователь просматривает этот контейнер
3 ответа

Чтобы расширить ответ kinsho (правильный):

По соображениям безопасности и удобства обслуживания вы должны быть осторожны в том, чтобы вводить необработанный HTML непосредственно в документы. Это может сломать прослушиватели событий, разбить парсер DOM и потенциально открыть уязвимости безопасности.

Обычно лучший способ ленивой загрузки - отправлять закодированные данные (такие как JSON или XML) клиенту и обрабатывать результат соответственно. Для базового HTML можно использовать templating solution. Даже iframe может быть лучше, чем вставка

Hello

1
2
* в элемент innerHTML.

Кроме того, прежде чем вы начнете выполнять ленивую загрузку для своего сайта, найдите время, чтобы подумать, действительно ли это стоит. Дополнительный HTTP-запрос заметно дороже, чем просто загрузка данных за один раз, и любой HTML-код, введенный через Javascript, не будет отображаться поисковыми роботами. Итак, если вы только вводите небольшое количество статической информации, это действительно не стоит проблем.

* можете ли вы найти ошибку синтаксического анализа? Теперь представьте, что вы делаете это для стандартного HTML-документа.


Зачем полагаться на некоторую стороннюю библиотеку, чтобы помочь вам лениво загружаться? Вы можете просто отлично использовать собственный JavaScript.

Фактически, до тех пор, пока вы соглашаетесь с принципом, что вся ленивая загрузка инициируется каким-то действием пользователя, настройте слушателя на конкретный объект (будь то полоса прокрутки, какой-то заголовок раздела и т.д.). Настройте соответствующий обработчик, который полагается на AJAX (вы можете использовать jQuery здесь) для извлечения данных (желательно HTML), которые можно загрузить непосредственно в любой контейнер, который вы хотите, используя свойство innerHTML элемента контейнера.


Вот что вы действительно хотели начать. Это новый плагин jQuery, который я сделал сам. Вы можете "Lazy Load" все, что хотите, на основе любого элемента (селектор jQuery), который вы хотите.

https://github.com/shrimpwagon/jquery-lazyloadanything

licensed under cc by-sa 3.0 with attribution.