Cache obrázků nebo jiný mechanismus?

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
wise
Člen | 161
+
0
-

Zdravíčko,

mám takovou technickou :) Mám 100 obrázků, průměrná velikost 1kb.

Obrázky mám definované v css a akorát volám selektory.

Moje idea je taková, že když přijde uživatel poprvé na stránky, tak se mu to načte
a poté se to uloží (do cache?) a už to při procházení stránek, při opětovném
návratu atd. nebude muset stahovat.

Pokud je to tedy realizovatelné cachem, jak k těm obrázkům potom budu přistupovat?

Díky moc za hinty :-)

Peter9
Člen | 69
+
0
-
  1. pristupovať k dátam na strane klienta – nemožné.
  2. môžeš invalidovať keš – to je jediný spôsob.
wise
Člen | 161
+
0
-

Proč invalidovat cash? Tahám data z databáze a pro zjednodušení mají sloupec, kde je číslo obrázku. A to se použije jako selektor.

Proč invalidovat? Měl jsem za to, že keš funguje tak, že si načtu data, uložím do keše, při reloadu zjistím, jestli jsou v keši, pokud ano, vemu je odtamtud a nemusím ty obrázky načítat. Nebo to lze např. jen pro data?

Peter9
Člen | 69
+
0
-

Zle. Nemôžeš kešovať na strane servera (to zase user nemá práva), musíš kešovať na strane usera, ak chceš aby sa mu obrázky kešovali na pcčku a tým zrýchlili načítavanie stránky…

wise
Člen | 161
+
0
-

Vždyť ale nekešuju na straně serveru ne? Do template si načtu data, potom je ve foreach vypisuju a akorát dělám následující věc: <span class=„image$row->image“></span>. Nejde nějak určit, že se má načíst ten a ten obrázek? (Pokud sem vedle, tak se omlouvám, asi nechápu pořád, jak to funguje :)

Matúš Matula
Člen | 257
+
0
-

prečo to nenechať na browseri, nech si obrázky kešuje sám?

P.S. Vynútiť si ukladanie/kešovanie dát na strane klienta je pokiaľ viem možné iba použitím cookies (ak pominiem HTML5 úložiská, ktoré majú zatiaľ slabú podporu), ktoré s týmto ale nemajú nič spoločné :)

wise
Člen | 161
+
0
-

Tzn. pouze, pokud přijde poprvé, načíst obrázky, uložit cookies info, a příště jen jestli se něco nezměnilo? Co myslíte?

Filip Procházka
Moderator | 4668
+
0
-

Malinké ikony… hmmm a co trochu jiný přístup? https://github.com/…an/icons2css

Patrik Votoček
Člen | 2221
+
0
-

base64 pokud vím má problém v tom že nefunguje ve všech prohlížečích… (bohužel si nevzpomenu ktere to jsou)

tenerd
Člen | 15
+
0
-

https://forum.nette.org/…ni-v-sablone#…

V ie6 to asi nejde, v ie7 je max 32KB:)

Patrik Votoček
Člen | 2221
+
0
-

jinak se jedná o cache na straně klienta která je řízená hlavičkama… takže bych si pohrál s něma…

Matúš Matula
Člen | 257
+
0
-

tiež odporúčam článok, kt. zmienil @tenerd – je tam zrejme všetko, čo potrebuješ.

Inak ak ti ide o zníženie počtu requestov na server, tak by som zvážil použitie css sprites

Honza Kuchař
Člen | 1662
+
0
-

Ja bych na to sel temito stupni:

  1. Nactu obrazek z databaze, pokud neni v serverove cachi
  2. odeslu hlavicky, aby se obrazek cachoval na strane klienta

Odmenou ti bude rychle prohlizeni webu a nizka zatez na serveru.

newPOPE
Člen | 648
+
0
-

Pride mi trochu divne ako sa nad tymto medituje…

Pokial sa jedna o ikony → pristup ako pise Matus (css sprites) pozri si jQueryUI theme framework tam je to vyriesene ;-) cez .selectory (tak ako to zrejme mas aj ty)

Pokial sa jedna o uzivatelsky obsah, tak cesta imagecache (ala Drupal, divim sa ze to este nikto nenapisal :-), ja taku mini componentu na to mam, zatial neverejnu ;-) ).

work flow:

  1. request na obrazok (…/image-cache/200×100/{cesta-k-obrazku}/hello.png)
  2. vygeneruje sa obrazok na spravnu velkost (podla napr. profilu 200×100)
  3. ulozi sa sa na tej ceste priamo vo www foldri (cize tu) /root/…/www/image-cache/200×100/…/hello.png
  4. 2-x request sa uz spracuje na urovni serveru

Editoval newPOPE (12. 4. 2011 0:49)

Patrik Votoček
Člen | 2221
+
0
-

newPOPE napsal(a):

Pokial sa jedna o uzivatelsky obsah, tak cesta imagecache (ala Drupal, divim sa ze to este nikto nenapisal :-), ja taku mini componentu na to mam, zatial neverejnu ;-) ).

mám implementované už více jak rok (možná dva) https://github.com/…resenter.php#L38

nicméně tady je to o něčem jiném