DevProTalk

Forumi IT profesionalaca
web development, web design, e-business, SEO


Idite nazad   DevProTalk > Web development i web aplikacije > (X)HTML, JavaScript, DHTML, XML, CSS
Želite da se reklamirate ekskluzivno na ovoj poziciji? Javite se

(X)HTML, JavaScript, DHTML, XML, CSS Client scripting tehnologije, Dynamic HTML, Cascading Stylesheets, XML i standardi

Odgovori
 
Alati teme Način prikaza
Staro 19. 11. 2008.   #1
ivanhoe
Ivan Dilber
Sir Write-a-Lot
 
Avatar ivanhoe
 
Datum učlanjenja: 18.10.2005
Lokacija: Bgd
Poruke: 5.320
Hvala: 104
2.344 "Hvala" u 583 poruka
ivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svima
Pošaljite poruku preko Skype™ za ivanhoe
Default naterati browser da uradi image reload

problem je u sledecem, kad se edituje slika u profilu treba naterati browser da refreshuje cache, da se stara slika ne bi pojavljivala vise... naravno lako je dodati neki random GET parametar da bi se ucitala nova slika na toj strani, obicno sam to do sad tako radio, ali ovde je problem sto se slika koristi na celom sajtu, pa ce ostatak sajta i dalje prikazivati staru sliku...Palo mi je napamet da na edit strani saljem drugaciji header, ali to nece raditi jer browser nece ni ucitavati sliku na toj strani jer mu je vec u keshu...

Jel postoji neka strategija da se ovo resi, znaci da nateram browser da ubije cache ?

EDIT: Nixa mi je predlozio da menjam svaki put naziv (tj. putanju) slike kad se snima, sto ce mi resiti problem... Ali ajd da ostavim thread, mozda bude jos neka dobra ideja...
__________________
Leadership is the art of getting people to want to do what you know must be done.

Poslednja izmena od ivanhoe : 19. 11. 2008. u 18:22.
ivanhoe je offline   Odgovorite uz citat
Staro 19. 11. 2008.   #2
kodi
133t
Master
 
Avatar kodi
 
Datum učlanjenja: 07.01.2006
Lokacija: Beograd
Poruke: 714
Hvala: 16
37 "Hvala" u 28 poruka
kodi is on a distinguished road
Pošaljite ICQ poruku za kodi
Default

$novoIme=$userID.'-'.time().$extenzijaFajla;
tj, nixino reshenje.

to bi trebalo da radi ok sve dok je slika na fajl sistemu, ako ti je slika neki blob u bazi....
hmm.. onda probaj da saljes lastModified hedere uz heder o slici

ili da opet odradis kao da je na fajlsistemu, a da imas rewrite rule koji uhvati userID, ime se promenilo zbog novog timestampa, on onda izvuce avatar iz baze i ne bi trebalo da bude problema



(mada nisam siguran koliko bi to, i da li bi to opteretilo server na high traffic sajtovima)
__________________
kodi je offline   Odgovorite uz citat
Staro 19. 11. 2008.   #3
bluesman
Goran Pilipović
Sir Write-a-Lot
 
Avatar bluesman
 
Datum učlanjenja: 18.05.2005
Lokacija: Beograd
Poruke: 5.450
Hvala: 288
1.247 "Hvala" u 446 poruka
bluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušati
Pošaljite ICQ poruku za bluesman
Default

Mozes da ucitas sliku sa <img src="url_do_slike.jpg?nesto=nesto_razlicito" /> to ce sasvim normalno da prikaze jpg

Edit: izvini, nisam pažljivo pročitao pitanje, mislio sam kako useru da prikažeš da mu je slika promenjena kada uploaduje novu, a tebi u stvari treba da svi ostali takođe vide novu sliku. To možda možeš sa .htaccess

<Directory "/path/gde/uploadujes/">
<FilesMatch "\.(jpg|png|gif)$">
Header set Cache-Control "max-age=7200, must-revalidate"
</FilesMatch>
</Directory>
__________________
Goran Pilipović a.k.a. Ugly Fingers Bradley f.k.a. bluesman
I don't always know what I'm talking about but I know I'm right!

Poslednja izmena od bluesman : 19. 11. 2008. u 20:58.
bluesman je offline   Odgovorite uz citat
Staro 19. 11. 2008.   #4
kodi
133t
Master
 
Avatar kodi
 
Datum učlanjenja: 07.01.2006
Lokacija: Beograd
Poruke: 714
Hvala: 16
37 "Hvala" u 28 poruka
kodi is on a distinguished road
Pošaljite ICQ poruku za kodi
Default

evo jednog od komentara ispod php.net/header

Citat:
When using PHP to output an image, it won't be cached by the client so if you don't want them to download the image each time they reload the page, you will need to emulate part of the HTTP protocol.

Here's how:
Kôd:
<?php

    // Test image.
    $fn = '/test/foo.png';

    // Getting headers sent by the client.
    $headers = apache_request_headers(); 

    // Checking if the client is validating his cache and if it is current.
    if (isset($headers['If-Modified-Since']) && (strtotime($headers['If-Modified-Since']) == filemtime($fn))) {
        // Client's cache IS current, so we just respond '304 Not Modified'.
        header('Last-Modified: '.gmdate('D, d M Y H:i:s', filemtime($fn)).' GMT', true, 304);
    } else {
        // Image not cached or cache outdated, we respond '200 OK' and output the image.
        header('Last-Modified: '.gmdate('D, d M Y H:i:s', filemtime($fn)).' GMT', true, 200);
        header('Content-Length: '.filesize($fn));
        header('Content-Type: image/png');
        print file_get_contents($fn);
    }

?>
u principu uvek treba slati last modified kad se salje neka slika...
drugi je problem sto su 90% primera po tutorijalima na netu, a i ponekoj knjizi ovakvi:

Kôd:
<?php
$length = strlen($imagedata);
header('Content-Length: '.$length);
header('Content-Type: image/jpeg');
print($imagedata);
?>
tj nigde ni traga od header-a.


e sad, ja stvarno nisam testirao da li ce ovakav pristup definitivno naterati recimo IE6 da promeni sliku.. treba probati.
__________________
kodi je offline   Odgovorite uz citat
Staro 19. 11. 2008.   #5
MorenoArdohain
Knowledge base
Wrote a book
 
Avatar MorenoArdohain
 
Datum učlanjenja: 16.06.2005
Lokacija: Novi Sad
Poruke: 1.437
Hvala: 37
131 "Hvala" u 82 poruka
MorenoArdohain će postati "faca" uskoroMorenoArdohain će postati "faca" uskoro
Default

Ja bih to uradio na nivou Apachea (ako je on uopste u pitanju

Probaj da stavis expire headere za slicice kako treba, na brzinu sam nasao primer:
http://www.websiteoptimization.com/speed/tweak/cache/

Citat:
<Directory "/home/website/public_html">
Options FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
Allow from all
ExpiresDefault A300
<FilesMatch "\.html$">
Expires A86400
</FilesMatch>
<FilesMatch "\.(gif|jpg|png|js|css)$">
Expires A2592000
</FilesMatch>
</Directory>

ExpiresDefault A300 sets the default expiry time to 300 seconds after access (A). Using M300 would set the expiry time to 300 seconds after file modification. The FilesMatch segment sets the cache-control header for all .html files to 86400 seconds (1 day). The second FilesMatch section sets the cache-control header for all images, external JavaScripts and CSS files to 2592000 seconds (30 days).
Naravno, samo treba izmeniti da je expiry vrlo kratak za slicice.
Koliko ja znam, browser bi trebao da osvezi svoj cache nakon tog perioda.
__________________
Năo quero mais seguir um só caminho
MorenoArdohain je offline   Odgovorite uz citat
Staro 19. 11. 2008.   #6
bluesman
Goran Pilipović
Sir Write-a-Lot
 
Avatar bluesman
 
Datum učlanjenja: 18.05.2005
Lokacija: Beograd
Poruke: 5.450
Hvala: 288
1.247 "Hvala" u 446 poruka
bluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušati
Pošaljite ICQ poruku za bluesman
Default

E, upravo sam ja editovao svoj post sa istim predlogom
__________________
Goran Pilipović a.k.a. Ugly Fingers Bradley f.k.a. bluesman
I don't always know what I'm talking about but I know I'm right!
bluesman je offline   Odgovorite uz citat
Staro 19. 11. 2008.   #7
ivanhoe
Ivan Dilber
Sir Write-a-Lot
 
Avatar ivanhoe
 
Datum učlanjenja: 18.10.2005
Lokacija: Bgd
Poruke: 5.320
Hvala: 104
2.344 "Hvala" u 583 poruka
ivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svima
Pošaljite poruku preko Skype™ za ivanhoe
Default

@blues: znam za to, spomenuh da sam obicno koristio GET kao resenje, ali to je resenje za tu stranu, a na nekoj drugoj strani ce i dalje da se vuce stara slika, jer slika.jpg i slika.jpg?nesto nisu isto u keshu.

@kodi: slike se naravo ne salju iz php, nego kao staticki fajlovi, ali cak i kad bih koristio php za to, opet postoji problem sto browser nece ni probati da ucitava tu sliku, jer su headeri namesteni za sve slike da se naravno kesiraju. Pa se ni skript nece pozvati odnosno novi header nece biti poslat.

Elem, ova fora da svaki put dodam random element u putanju kad je snimam u bazu radi skroz ok, za sad najednostavnije resenje. Nije nixa za bacanje

EDIT: e sad moram i ja da editujem post, bre Daklem, ok vam je ideja, ali onda mi se slike nece kesirati (to jest na kratko), a ne edituju se toliko cesto da bi se to isplatilo.
__________________
Leadership is the art of getting people to want to do what you know must be done.

Poslednja izmena od ivanhoe : 19. 11. 2008. u 21:10.
ivanhoe je offline   Odgovorite uz citat
Staro 19. 11. 2008.   #8
MorenoArdohain
Knowledge base
Wrote a book
 
Avatar MorenoArdohain
 
Datum učlanjenja: 16.06.2005
Lokacija: Novi Sad
Poruke: 1.437
Hvala: 37
131 "Hvala" u 82 poruka
MorenoArdohain će postati "faca" uskoroMorenoArdohain će postati "faca" uskoro
Default

Pa mozes implementirati taj expire header samo za slike na "after edit" strani - jer ce browser nakon toga osveziti i svoj cache (setuj expire na 0).
__________________
Năo quero mais seguir um só caminho
MorenoArdohain je offline   Odgovorite uz citat
Staro 20. 11. 2008.   #9
ivanhoe
Ivan Dilber
Sir Write-a-Lot
 
Avatar ivanhoe
 
Datum učlanjenja: 18.10.2005
Lokacija: Bgd
Poruke: 5.320
Hvala: 104
2.344 "Hvala" u 583 poruka
ivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svima
Pošaljite poruku preko Skype™ za ivanhoe
Default

hmm, moguce da ja nesto ne kapiram dobro, ali mislim da nece... jer da bi osvezio cache settings preko headera on mora da ucita taj fajl, a on ga nece ucitati jer vec ima tu sliku u keshu (ukoliko se naziv slike ne menja)..
__________________
Leadership is the art of getting people to want to do what you know must be done.
ivanhoe je offline   Odgovorite uz citat
Staro 20. 11. 2008.   #10
MorenoArdohain
Knowledge base
Wrote a book
 
Avatar MorenoArdohain
 
Datum učlanjenja: 16.06.2005
Lokacija: Novi Sad
Poruke: 1.437
Hvala: 37
131 "Hvala" u 82 poruka
MorenoArdohain će postati "faca" uskoroMorenoArdohain će postati "faca" uskoro
Default

Mislim da gresis, mada mozda i ja nisam bio precizan, pogledaj ovo:
http://betterexplained.com/articles/...-http-caching/

Tu je objasnjeno u kojim slucajevima browser kesira, u zavisnosti od headera za trazeni fajl.

Edit: mozda expiry header nije dobro resenje, mogao bi da probas sa eTag ili Last Modified.
Ako te ne mrzi da se bakces sa tim
__________________
Năo quero mais seguir um só caminho

Poslednja izmena od MorenoArdohain : 20. 11. 2008. u 01:46.
MorenoArdohain je offline   Odgovorite uz citat
Odgovori


Alati teme
Način prikaza

Pravila pisanja
Možete ne započinjati nove teme
Možete ne slati odgovore
Možete ne slati priloge
Možete ne izmeniti svoje poruke
vB kôd je Uključen
Smajliji su Uključen
[IMG] kod je Uključen
HTML kôd je Isključen
Pogledajte forum

Slične teme
Tema Početna poruka teme Forum Odgovori Poslednja poruka
Kreiranje forme za reload-om ljtruba Sva početnička pitanja 10 25. 03. 2010. 14:11
pretrazivaci, index reload Ivan Marketing i SEO 0 29. 06. 2008. 13:06
kako naterati Boot-ove da mi ne indeksiraju sajt buksula Marketing i SEO 2 28. 10. 2007. 15:04


Vreme je GMT +2. Trenutno vreme je 01:15.


Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.
Mišljenja, saveti, izjave, ponude ili druge informacije ili sadržaji nastali na Sajtu su vlasništvo onoga ko ih je kreirao, a ne DevProTalk.com, tako da ne morate da se oslanjate na njih.
Autori poruka su jedini odgovorni za ovakve sadržaje. DevProTalk.com ne garantuje tačnost, kompletnost ili upotrebnu vrednost informacija, stavova, saveta ili datih izjava. Ne postoje uslovi pod kojima bi mi bili odgovorni za štetu ili gubitak koji je posledica bilo čijeg oslanjanja na nepouzdane informacije, ili bilo kakve informacije nastale kroz komunikaciju između registrovanih članova.
Web sajt može sadržavati linkove na druge web sajtove na Internetu ili neke druge sadržaje. Ne kontrolišemo niti podržavamo te druge web sajtove, niti smo pregledali bilo kakve sadržaje na takvim sajtovima. Mi nećemo biti odgovorni za legalnost, tačnost ili prikladnost bilo kog sadržaja, oglasa, proizvoda, usluga ili informacije lociranim na ili distribuiranih kroz druge web sajtove, niti za bilo kakvu štetu nastalu kao posledica takvih informacija. DevProTalk.com drži i čuva druga prava vlasništva na web sajtu. Web sajt sadrže materijale zaštićene copyright-om, zaštitne znakove i druge informacije o pravu vlasništva ili softver. Članovi mogu poslatu informacije zaštićene pravima vlasništva njihovih nosilaca i ona ostaju zaštićena bez obzira da li su oni koji prenose te informacije to naveli ili ne. Osim informacija koje su u javnom vlasništvu ili za koje dobijete dozvolu, nemate pravo da kopirate, modifikujete ili na bilo koji način menjate, objavljujete, prenosite, distribuirate, izvršavate, prikazujete ili prodajte bilo koju informaciju zaštićenu pravima vlasništva. Slanjem informacija ili sadržaja na bilo koji deo DevProTalk.com, Vi automatski dozvoljavate i predstavljate garanciju da imate pravo da dozvolite DevProTalk.com ili članovima DevProTalk.com bespovratnu, kontinualnu, neograničenu, globalnu dozvolu da koriste, kopiraju, izvršavaju, prikazuju i distribuiraju takve informacije i sadržaje i da iz takvih sadžaja koriste bilo koji deo u bilo koje svrhe, kao i pravo i dozvolu da koriste gore navedene sadržaje. Svi zaštitni znakovi (trademarks), logotipi, oznake usluga, firme ili imena proizvoda koji se pominju na ovom web sajtu su vlasništvo kojim raspolažu njihovi vlasnici.