Autor Zpráva
BuGeR
Profil
Zdravím.
Vytvořil jsem si galérii. V databázi mám tyto tabulky: folders > albums > photos (Jsou vzájemně propojeny - photos náleží albums - albums náleží folders).
Nyní si chci vypsat všechny obrázky (photos) z databáze (v tabulce mám adresy obrázku, které jsou na serveru ve složce).
Použiju tento kód:
<?php
...
$album = -- zde vybíram album, které náleží fotce --
$folder = -- zde vybíram složku (folder) která náleží albu --
$db_photos = lfquery("SELECT * FROM photos WHERE album='".$album["id"]."'");
while($photo = lfarray($db_photos)) {
    $photo_img = MEDIA."gallery/".$folder["folder"]."/".$album["filefolder"]."/mini_".$photo["url"];
    echo "<a href='gallery.php?folder=".$folder["id"]."&album=".$album["id"]."&photo=".$photo["id"]."'>";
    echo "<img src='".$photo_img."' title='".$photo["title"]."' alt='".$photo["title"]."' border='0' />";
    echo "</a>";
}
...
?>
Každá fotka, kterou mám uloženou na serveru (a její adresu načítám z databáze), je uložena 2x:
- její normalní verze (např. adresa.jpg)
- a její zmenšena verze (např. mini_adresa.jpg)
Pro kód výše si zobrazím pouze zmenšenou verzi (takže si načtu adresu z databáze, a vložím před ní mini_).
Vše funguje jak má, jenže problém nastává tehdy, kdy mám v databázi třeba 30 fotek (na serveru ve složce tedy 60 -30 původních a 30 zmenšených),
a vypíšu si je tím kódem, stránka načítá zhruba minutu - ale pouze jednou, když už tu stránku kompletně mám načtenou, a načtu ji znova, načte se hned (v řádech ms).
To znamená, že prostě nějakou chvíli trvá, než se ty fotky všechny načtou z databáze a potom zobrazí. Jenže to se mi nezdá - zas takový těžký kód nevykonávám (pouze vycucnu adresy obrázku z databáze, strčím před ně mini_, a následně je vypíšu).
Co způsobuje to, že se to načítá tak dlouho?
Díky všem.
Kry5
Profil
Nenahráváš třeba ty fotky nějak omylem na server znovu? Resp. jestli je nevytváříš? Stačí kdybys tam měl jeden příkaz, kterej tu fotku pak uloží znovu (a přepíše původní soubor) a může to rapidně ovlivnit délku načítání.
BuGeR
Profil
Ne, ty fotky pouze nahraju na server a vytvořím (při nahravání) její zmenšenou kopii.
Potom vytáhnu z databáze adresy, dám před ně mini_ a vypíšu je.
Segi_L
Profil
A nie je to napriklad kvoli tomu, že sa načítajú obrázky a pri druhom pokuse tie obrázky už máš u seba v cache, tak sa zobrazia rychlejšie? Nič iné ma nenapadá.
Beavis
Profil
Segi_L:
Tohle je vcelku jasné, že jak se dostanou do cache, bude to načtené bleskurychle.
BuGeR:
Nic mne nenapadá, jaké rozlišení a velikost mají ty fotky s prefixem mini_?
BuGeR
Profil
Beavis:
Obrázky mají přibližně 130x130px, a jsou +- 14 kb velké

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0