Pientä koodinpätkää?

Tämä on varmaan ihan helppo juttu, mutta en osaa sellaista tehdä.

Haluan, että kun kävijä tulee kotisivulleni, päivitetään sivu. Etusivuni sisältö on tehty siten, että jos sivu tallentunut kävijän sivuhistoriaan, kaikki muutokset eivät näy seuraavalla käynnillä. Siis sivu pitäisi päivittää, kun kävijä astuu sivulle, jotta hän näkisi uusimman version sivusta.

Onko tähän olemassa joku valmis koodinpätkä?
10436
Äänestä

Muut lukivat myös

Vastaukset 10

Vanhimmat

palvelinpäässä voi vaikuttaa.
Jos käyttäjä esim. on jonkun proxyn takana, niin
palvelimesi ei voi edes mitenkään tietää että hän
on hakenut sivun. Se päivittyy vasta sitten kun
proxy jonkun oman aikataulunsa mukaan käy päivttämässä sivujaan.

Äänestä
  • Ajattelin että tuo onnistuisi php:llä, kun kerran onnistuu sekin, että käyttäjä ohjataan toiseen osoitteeseen (refresh vai mikä nyt olikaan).

    Äänestä

  • kun ei taidot riitä kirjoitti:

    Ajattelin että tuo onnistuisi php:llä, kun kerran onnistuu sekin, että käyttäjä ohjataan toiseen osoitteeseen (refresh vai mikä nyt olikaan).

    php suoritetaan palvelimessa ja html vasta
    käyttäjän koneessa (selaimessa).

    Äänestä

  • mutta huomaa että kirjoitti:

    php suoritetaan palvelimessa ja html vasta
    käyttäjän koneessa (selaimessa).

    Voiko tuon kuvaamani tempun tehdä sitten html-kielellä tai javascriptillä?

    Äänestä

  • kun ei taidot riitä kirjoitti:

    Voiko tuon kuvaamani tempun tehdä sitten html-kielellä tai javascriptillä?

    html-juttuja:


    lataa itsensä uudestaan jos laitat tuohon
    tämäsivu.html tilalle sivun oikean nimen

    Äänestä

  • on ihan perus kirjoitti:

    html-juttuja:


    lataa itsensä uudestaan jos laitat tuohon
    tämäsivu.html tilalle sivun oikean nimen

    Kokeilin, tuo päivittää sivun aina 10 sek välein. onko mahdollista tehdä niin, että se latautuisi vain kerran? Ihan sama, onko se html:ää, javascriptiä vai php:ta, pääasia että toimisi.

    Äänestä

Tää on nyt suora lainaus Ari Rantalan kirjasta PHP -web-ohjelmoinnin peruskirja (docendo).

»
Eräs käyttökelpoinen menetelmä välimuistien ohittamiseen on käyttää hyödyksi sitä tietoa, että kaikki välimuistiratkaisut perustuvat URL:ään. Dokumentti tallennetaan välimuistiin siten, että sen tunnistimena on hakupyynnössä käytetty URL. Tätä mekanismia voidaan harhauttaa generoimalla esimerkiksi kyselyosaltaan muuttuva URL siten, että tällä kyselyosan muuttuvalla osalla ei sitten sovelluksessa itsessään tehdä mitään. Jokaisen pyynnön yhteydessä käytetty URL on kuitenkin erilainen, minkä vuoksi mikään välimuisti ei löydä sitä arkistostaan.
Käytännössä tämä voidaan toteuttaa tekemällä Web-sivulle vaikkapa hyperlinkki, jonka kyselyosaan generoidaan esimerkiksi time()-funktiolla joka pyyntökerralla muuttuva arvo:

...skripti.php?tuoreustakuu=1002619954
...skripti.php?tuoreustakuu=1002619956
...skripti.php?tuoreustakuu=1002629954
...skripti.php?tuoreustakuu=1002629958

Esimerkkisovelluksen tapauksessa esim. sivun alkuun voidaan lisätä hyperlinkki:

echo ("Aloita alusta");

joka tulostaa hyperlinkki esimerkiksi muodossa:



missä 1002620006 on time()-funktiona palauttama luku sekunteina vuoden 1970 alusta. Jos linkkiä seurataan harvemmin kuin sekunnin välein, on lähes varmaa saada dokumentti alkuperäisestä paikasta. Huomattakoon, että skripti ei käytä tuoreustakuu-muuttujan arvoa mihinkään.

Erilaiset välimuistit nopeuttavat (dynaamistenkin) Web-dokumenttien lataamista. Usein ei ole mitään tarvetta estää Web-dokumentin hakemista välimuistista - pikemminkin se on toivottavaa.
Tässä kirjassa kuitenkin käytetään edellä esitettyä ratkaisua usein sen vuoksi, että etenkin aloittelevilla Web-ohjelmoijilla olisi jokin luotettava keino ohittaa välimuistit helposti varmistaakseen kulloisenkin sovelluksen tilan.
»



Tätä voit sitten halutessas koittaa soveltaa jotenkin, vaikka tuon nimimerkin "on ihan perus" mainitseman meta http-equivin kanssa.

Äänestä
  • Miltäs vuodelta tuo kirja on?
    Meinaan vaan, että olikos PHP 4.3 josta lähtien register_globaalit oletuksena pois päältä joten $PHP_SELF ei toimine vaan pitää käyttää $_SERVER['PHP_SELF']

    Ja PHP 5 on ollut jo yli pari vuotta.

    Äänestä

  • Nerere kirjoitti:

    Miltäs vuodelta tuo kirja on?
    Meinaan vaan, että olikos PHP 4.3 josta lähtien register_globaalit oletuksena pois päältä joten $PHP_SELF ei toimine vaan pitää käyttää $_SERVER['PHP_SELF']

    Ja PHP 5 on ollut jo yli pari vuotta.

    Näyttäis olevan vuodelta 2002. Toimivuudesta en tiiä, kunhan kopsasin kun muistin tuollaisen olemassaolon. Ehkä noiden muiden vinkeistä on enempi hyötyä.

    Äänestä

Lisää jokasivun alkuun headeri joka kertoo ettei proxyja jne... käytetä sivullasi. Tällöin sivu haetaan aina palvelimelta eikä proxystä tai selaimen välimuistista.

http://fi.php.net/header esimerkki 6 kokonaisuudessaan.

Äänestä

Kommentoi aloitusta


kun ei taidot riitä kirjoitti:

Tämä on varmaan ihan helppo juttu, mutta en osaa sellaista tehdä.

Haluan, että kun kävijä tulee kotisivulleni, päivitetään sivu. Etusivuni sisältö on tehty siten, että jos sivu tallentunut kävijän sivuhistoriaan, kaikki muutokset eivät näy seuraavalla käynnillä. Siis sivu pitäisi päivittää, kun kävijä astuu sivulle, jotta hän näkisi uusimman version sivusta.

Onko tähän olemassa joku valmis koodinpätkä?

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu