To jest tylko wersja do druku, aby zobaczyć pełną wersję tematu, kliknij TUTAJ
phpBB2 by Przemo
Support forów phpBB2 modified by Przemo

HTML/PHP/AJAX/JS - [Problem] Ładowanie strony w obromną ilością obrazków

SpiJay - 12-09-2013, 22:48
Temat postu: [Problem] Ładowanie strony w obromną ilością obrazków
Cześć forumowicze,

długo nie otwierałem żadnego tematu na forum i wkońcu nastał ten dzień, gdzie muszę radzić się was - bardziej doświadczonych w tym temacie.

Mam stronę o tematyce win - powiedzmy, że to jest sklep.
Strona jest dość nietypowej konstrukcji, ponieważ do wyświetlania win
wykorzystałem takie wizualne rozwiązanie:



Kod:
<div id="slider>
    <div class="slide-custom">Lorem... <img src="wino1.jpg" /></div>
    <div class="slide-custom">Lorem... <img src="wino2.jpg" /></div>
    <div class="slide-custom">Lorem... <img src="wino3.jpg" /></div>
    <div class="slide-custom">Lorem... <img src="wino4.jpg" /></div>
    <div class="slide-custom">Lorem... <img src="wino5.jpg" /></div>
    (...)
</div>
<ul id="miniaturki">
    <li><div class="mini-slide"><img src="mini-wino1.png" /></div></li>
    <li><div class="mini-slide"><img src="mini-wino2.png" /></div></li>
    <li><div class="mini-slide"><img src="mini-wino3.png" /></div></li>
    <li><div class="mini-slide"><img src="mini-wino4.png" /></div></li>
    <li><div class="mini-slide"><img src="mini-wino5.png" /></div></li>
    (...)
</ul>


Fioletowe, elementy to OBRAZKI.
Na dole ponumerowane są miniaturki etykietek win, po kliknięciu slider (szary element) przesuwa się do klikniętego wina.
Każde wino ma swój opis i swoje 2 zdjęcia - miniaturka w nawigacji na dole oraz zdjęcie duże w górnym oknie opisowym.

Wszystko działa superowo, ale jest problem... Mam już 200 win czyli razem 400 obrazków :(
W miniaturki wbudowałem skrypt jCarousel do przewijania ich, czyli mam 200 pozycji <li> ...
Strona się BARDZO DŁUGO wczytuje, jakie rozwiązanie zastosować przy takim układzie ?

Obecnie przy wczytaniu strony następuje zapis obrazków do pamięci podręcznej przeglądarki:

.htaccess
Kod:
<FilesMatch "\.(ico|jpg|gif|png|css|js)$">
Header set Cache-Control "max-age=2851200, public"
</FilesMatch>


(dobrze?)

Nie mogę pozwolić na tak długie ładowanie strony przy wejściu.
Jak rozwiązać ten problem jednocześnie zachować udostępnianie botom internetowym indeksowanie wszystkich win ?

Proszę o wskazówki, temat jest dla mnie ważniejszy niż rocznica małżeństwa - w sumie bez przesady, ale to równie ważne :)

kevin_ - 13-09-2013, 10:05

Musisz pobierać wszystko od razu? - Pobierz tylko pierwszy (domyślny) rekord (opis+zdjęcia) dla win a jak ktoś będzie chciał przejrzeć inne to po prostu zrób funkcje w AJAXIE, która zwróci Ci kolejne obrazki + opisy.

Oczywiście pobrane już elementy przez użytkownika trzymaj cały czas - nie rób coś w stylu: użytkownik chce wrócić do pierwszego produktu i ponownie wysyłasz żądanie AJAX i pobierasz to co już wcześniej pobrałeś.

Dodatkowo spróbuj zoptymalizować grafiki - muszą one być w FULLHD? - spróbuj z mniejszą rozdzielczością dla pełnych grafik. W Photoshopie podczas eksportu dla Weba jest taka opcja, że możesz ustalić jakość zdjęcia - tam bodajże są 3 lub 4 typy. Dla miniaturek zdecydowanie nie musi być w mega, super jakości ;-)

SpiJay - 13-09-2013, 12:06

kevin_, oczywiście fotosy już mam skompresowane.

W porządku, tak też chciałem zrobić, aczkolwiek dodałem jeszcze skrypt IsoTope -> http://isotope.metafizzy.co/ który daje możliwość bardzo zaawansowanego filtrowania treści bez przeładowania strony. Szukanie na podstawie frazy, koloru, rodzaju, nazwy, dosłownie wszystkiego.

Aczkolwiek treści do filtrowania muszą być wygenerowane w dokumencie.

Ja z kolei wpadłem na pewne rozwiązanie i potrzebowałbym małej opinii czy właśnie tędy droga...
1. Czy wygenerowana baza w XML pomogła by przy dodaniu właśnie takiego "sekwencyjnego" ładowania tych win ?
2. Czy skrypt Isotope, który (jak wyżej napisałem) filtruje mi wyniki mógłby jakoś pracować na tym pliku XML ?
3. Jest jeszcze problem ze skryptem jCarousel i właśnie Isotope, ponieważ jak wybiorę filtry, to lista się skraca ale dla jCarousel jest nadal 200 pozycji. Można jakoś zaktualizować szerokość / ilość listy karuzeli ?



Powered by phpBB modified by Przemo © 2003 phpBB Group