Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Kuvan lataus palvelimelta

Sivun loppuun

pistemies [01.12.2008 10:01:43]

#

Minulla on ohjelma, jonka tarkoitus olisi hakea jokaisella sivun latauskerralla uusi kuva palvelimelta. Mitenkähän tuon saisi onnistumaan?
Vaikuttaa siltä, että se lataa kuvan useimmiten selaimen välimuistista, aina ei auta edes sivun päivittäminen. Välillä se taas toimii normaalisti, mutta useimmiten ei.
Miten voisi estää kuvan tallentumisen selaimen sivuhistoriaan?

Tiedoston alku on seuraava:

header("Cache-Control:no-cache");
header("Content-Type: image/gif");

Kaipaisin lähinnä tuohon sivulle, jossa tuo kuva haetaan img-tagilla, sopivaa pientä javascript-pätkää. Löytyyköhän sellaista?

ajv [01.12.2008 10:22:48]

#

Sulla siis tuon satunnaisen kuvan tarjoilee php-skritpi? Laita vaikka aikaleima tuon kuvan parametriksi, se muuttuu joka kerta (tai kerran sekunnissa, mikä kuitenkin riittänee).

<img src="random.php?t=<?php echo time() ?>" alt="Random pic" />

Lebe80 [01.12.2008 10:25:47]

#

mikä sulla on kuvan url?

Laita kuvan urlin perään esim. satunnainen parametri, jolloin selain ei hae kuvaa välimuistista (koska url on eri kuin edellisillä kerroilla)

esim.
kuva.php?v20081101dfsdfr

prkl ajv, hidas minä....

pistemies [01.12.2008 12:32:02]

#

Kiitoksia.
Tuota minä juuri harkitsinkin, mutta epäröin vähän. Kuva-ohjelmassa oli vielä vähän säätöä. Se tarkistaa osoitteen, mistä tuota kuvaa ladataan. Piti saada osoite täsmäämään tietokannassa olevaan urliin.
Alaisvujen query stringit ja url-osoitteen kirjoittaminen pelkällä domainnimellä aiheuttivat häiriöitä.

trilog [01.12.2008 16:45:58]

#

Itse olen käyttänyt vastaavissa tilanteissa pelkkää kysymysmerkkiä, onko se riittävä? Ainakin omissa sovelluksissa tuo on toiminut.
Eli esim.:

<img src="kuva.php?" alt="" />

Lebe80 [01.12.2008 18:13:54]

#

trilog: ei ole, koska selaimelle on aivan sama mitä parametrejä tuossa on ja missä muodossa ne on. Jos urli muuttuu, ladataan tiedosto uudelleen mikäli samaista urlia ei vielä välimuistissa ole (tietenkin mukaan tulee vielä erilaiset selain-/käyttäjäkohtaiset yms. välimuistisäännöt ja -asetukset).

Jos siis käytät "kuva.php?" -osoitetta, niin ensitöikseen selain katsoo löytyykö kuva.php? -"nimistä" tiedostoa välimuistista.


Jos kuva vaihtuu esim. vain kerran päivässä, niin tuota aikaleimaa ei tietenkään kannata muuttaa kuin kerran vuorokaudessa. Miksi siis turhaan hidastaa käyttäjille kuvan latautumista (ja samalla kasvattaa turhaan palvelimen tiedonsiirtoa).

peg [01.12.2008 18:34:26]

#

En mene takuuseen, mutta muistelen joskus pari vuotta sitten
lukeneeni mozillasta (firefox) että urlit joissa on ? kysymysmerkki
ladataan aina uudestaan kokonaisuudessaan, mutta ei css:sää.
Näin tietokannoissa tapahtuneet päivitykset välittyvät helpommin
Firefoxin käyttäjille. Tämä saattoi olla esim FF 2 version tullessa.

pistemies [01.12.2008 19:27:09]

#

Tässä ohjelmassani tarvitaan muutakin informaatiota syöttää php:lle jotta se tekee halutunlaisen kuvan. Siinä on jopa vaihtoehto, ettei näytetä kuvaa lainkaan, vaan pelkästään käsitellään urlissa oleva muu tieto. Tällöin tiedosto ladataan piilotetussa iframessa.

Lebe80 [01.12.2008 19:57:28]

#

Pekka Mansikka: onkohan tuo iframe tarpeellinen? Eikös kannattaisi tehdä yksi funktio, joka tekee kaiken tarpeellisen.

Eli
1. Tarkistaa funktion parametrin perusteella tarvitaanko kuvaa ollenkaan
2. Jos kuvaa ei tarvita, ei img-tägiä tulosteta.
3. Jos kuvaa tarvitaan, luodaan väliaikais-hakemistoon kuva, tulostetaan img-tägi ja tulostetaan sen urlikenttään kuvan osoite.

pistemies [01.12.2008 21:24:37]

#

Lebe80 kirjoitti:

Pekka Mansikka: onkohan tuo iframe tarpeellinen? Eikös kannattaisi tehdä yksi funktio, joka tekee kaiken tarpeellisen.

Eli
1. Tarkistaa funktion parametrin perusteella tarvitaanko kuvaa ollenkaan
2. Jos kuvaa ei tarvita, ei img-tägiä tulosteta.
3. Jos kuvaa tarvitaan, luodaan väliaikais-hakemistoon kuva, tulostetaan img-tägi ja tulostetaan sen urlikenttään kuvan osoite.

Noihan se olisi, jos olisi käytössä pelkkää php:ta. Tämä on sellainen, että sen tulisi toimia myös sivuilla, joissa on käytössä pelkkä html.

reca [01.12.2008 22:03:45]

#

Miksi sivuilla ei saa olla PHP:ta?

Newb [01.12.2008 22:10:25]

#

reca kirjoitti:

Miksi sivuilla ei saa olla PHP:ta?

Siksi ettei kaikki ilmaispalvelimet tue sitä.

reca [03.12.2008 02:38:30]

#

Jos ei saa käyttää PHP:tä niin miksi viestiketjun aloittaja sitten haluaa PHP-viritelmäänsä apua... jos sitä ei kerran edes saa käyttää? :-/


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta