Ленивая загрузка изображений проблема с предварительным отображением изображений?

Коллеги, нужна помощь, "бью в колокола":
Необходимо сделать "ленивую загрузку" изображений, тоесть, что пользователь видит (,...), то и загружается, иначе стоит изображение с загрузкой картинки и после того как загрузилось, замещает предыдущую.
Задача в том чтобы сделать все это с JQuery, посоветовали использовать скрипт Unveil.js, но там предусмотрены такие правила:
Оригинал моего:
<img src="..." alt="...">
Нужно:
<img src="..." data-src="..." alt="...">, где data-src - оригинальное изображение, src - изображение с загрузкой.
Я сделал замену с помощью JQuery:
$("img").not("div.counters img").each(function(){
		var src = $(this).attr("src");
		$(this).attr("data-src", src);
	//	Временное изображение
		$(this).attr("src", "http://www.reverta.lv/images/loading.gif");
	});

И после того как мои теги приходят в надлежащий вид, делаю ленивую загрузку:
$("img").not("div.counters img").unveil(200);
Только перед тем как поменять теги, все оригинальные изображение загружаются/отображаются и затем меняются на изображения с загрузкой -> Unveil().
Вопрос: Как не отображать оригинальные изображения, а сразу менять теги и подключать unveil?
  • Вопрос задан
  • 3540 просмотров
Решения вопроса 2
iiil
@iiil
Инженер и вэб-дизайнер, рисую.
Замену лучше сделать на стороне сервера. Как и где Вы вставляете код замены Вашего кода на тот, что нужен? Может ссылку кинете?
Ответ написан
Petroveg
@Petroveg
Миром правят маленькие с#@&ки
По-хорошему, никак.

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

Но вы же не можете менять код. Следовательно должны дождаться окончания формирования DOM. А если браузер считает, что должен начать загружать изображение до окончания формирования DOM?

В общем, @iiil уже дал верный совет — меняйте код на сервере. Иначе всё равно будет не то, что вы хотели.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы