[ОБНОВЛЕНО] Пожалуйста ПРОФИ, помогите сделать lozy load для field slideshow ноды

Главные вкладки

Аватар пользователя greenteamer greenteamer 12 марта 2013 в 0:05

Задача: Все тот же требовательный (хороший)) клиент - фотограф ну очень просит сделать отложенную загрузку фотографий в слайдерах нод ( field slideshow )

Проблема: большое колличество фотографий в ноде кушает примерно 20-30 мб трафика , но беда даже не в этом, пока трафик благополучно кушается - все фото дружно сидят и ждут до последнего байт полной загрузки ноды!! ЭТО УЖАС !! особнно для мобильного интернета!

мои попытки: нашел несколько решений lozy load но проблемма в том , что все они подгружают фото по скролингу, а у меня способ отображения поля image в node - Слайд-шоу (field slideshow) и Lozy load проверяет на видимость все img >>> а они есстественно все тут как тут на виду (по разметке) .... соответственно эффект как будто сразу все 40 фотографий пролистнули за 1 секунду и они опять все одновременно грузятся!!!!
есстественно imagecache не подходит потому что он фотограф и для него качество фото на первом месте таким образом фотка 700x400 минимум 200кб... что в сумме дает большой ОЧЕНЬ большой трафик!

я не силен в api drupal ... что же мне делать???? помогите разобраться пожалуйста!!!

Сайт: Наш сайт один в один http://seanflanigan.net , только этот летает на
wordpress , а drupal так не хочет... либо я не умею(( скорее второе конечно....
на сайте использую field slideshow что позволяет выводить поле image как слайдер в каждой ноде!

Заранее спасибо за помощь и отзывчивость!!
p.s. обещаю помогать другим в том что сам умею))

Комментарии

Аватар пользователя enemis enemis 12 марта 2013 в 2:42

Первое во первых lazy load(хотя в контексте галерей может и lozy). Во вторых есть imagecache позволяет уменьшить изображение чтобы не грузить 50мб. а в третьих views slideshow позволяет подгружать фотки ajax'om.

Аватар пользователя greenteamer greenteamer 12 марта 2013 в 12:04

"enemis" wrote:
Во вторых есть imagecache позволяет уменьшить изображение чтобы не грузить 50мб.

Я прекрасно знаю про imagecashe просто я вначале написал что клиент требовательный фотограф у него при максимальном сжатии что бы качество его фото его же устраивало 1 фотка 300-500 кб, imagecashe его не устраивает, так как ухудщает качество фото сильно! поэтому пришлось избавляться от него((

"enemis" wrote:
во первых lazy load

тут я уже попровобовал, не работает со слайдером так как все фото в слайдере сразу в видимой области экрана и lozy начинает их все вместе грузить(

"enemis" wrote:
а в третьих views slideshow

я бы с радостью, только вот как его запихнуть в каждую ноду, что бы при добавлении новой ноды и заполнении поля image он отображал галерею именно этой ноды именно в этой ноде))) запутано... но как то так... я описывал задачу... а views мне врятли так выведет((

Аватар пользователя greenteamer greenteamer 12 марта 2013 в 12:11

"ХулиGUN" wrote:
Что такое фотошоп, ресайз и иже с ними они не слышали, поэтому тупо грузят 20-50мб фотки непосредственно на сайт.

печально но факт ... есть и такие ребята)) у моего клиента canon 1D это один из самых дорогих профессиональных аппаратов... благо он знает что такое ресайз и умело этим пользуется... профессионал в своем деле так сказать!

"ХулиGUN" wrote:
Если свой сервак и nginx то советую статику отдать nginx`у

свой сервак , но не nginx .... не знаю даже если и nginx , будет ли это летать как на этом сайте например .... http://seanflanigan.net/portfolio/wedding-n%C2%B0-2/ грузится все постепенно...

Аватар пользователя greenteamer greenteamer 12 марта 2013 в 12:13

p.s. у нас точно такой же сайт что и http://seanflanigan.net получился... задача такая была... но вот проблемма - у него все летает блин на wordpress а у нас черепаха какая то ((
должно же быть решение!!!!

Аватар пользователя Orion76 Orion76 29 марта 2013 в 10:37

Если вьюс-слайдшоу работает как надо... его можно просто к ноде подключить через хук THEME_NAME_node_preprocess(&$vars)

<?php
function THEME_NAME_node_preprocess(&$vars){
$node=$vars['node'];
$vars['photos']=views_embed_view('slideshow_node','default'$node->vid);
}
?>

ну и естественно добавить вывод в node.tpl.php

<?php
print $photos;
?>

код не тестировался... но принцип понятен?