Hei,
Minulla on ongelmana se että kun tallennan palvelimelleni toiminnallista HTML5 -koodia niin mikäli tuossa ei tee kokonaan uusia sivuja, niin selaimeeni eivät päivitykset näy ilman evästeiden poistoa. Tämä ilmenee ainakin puhelimen selaimessa.
Eli toisinsanoen sivut eivät päivity ilman evästeiden poistoa. Tämä on kiusallista varsinkin jos haluaa vaikkapa kavereille näyttää jotakin tekelettä, sekä päivityksiä.
Onko tämä palvelimen tarjoajan ominaisuuksista kiinni vai voiko asialle tehdä jotain koodillisesti? En valitettavasti löytänyt aiheeseen liittyvää keskustelua mutta mikäli sellainen löytyy, niin eiköhän tuolla linkilläkin päästä eteenpäin.
Vaikuttaakohan välimuisti asiaan, jos nyt oikein ymmärsin.
Ilmeisesti kyllä. Eli sivu tallentaa tiedot välimuistiin mutta ei poista niitä. Eli vaikka päivittelen sivua niin se ei päivity ilman muistin tyhjennystä. Onko tähän ongelmaan olemassa, jotain automaattista ratkaisua vai tuleeko minun aina poistaa ensin vanhat tiedostot ennen uusien päälle kirjoitusta.
Ongelma on palvelimen asetuksissa, ja uskoakseni et mahda asialle HTML-sivulla mitään. PHP-koodilla tai htaccess-asetuksilla voisit kyllä muuttaa välimuistia koskevia otsikoita (Expires, Cache-Control).
Purkkaratkaisu on lisätä osoitteen perään aina eri ?numero (?1, ?2, ?3), jolloin kyseessä on selaimen näkökulmasta aina eri sivu. Vielä pahempana purkkana voi tehdä sivusta sellaisen, että se vain hakee todellisen nykyisen version palvelimelta XHR:llä (”AJAXilla”).
Mikäli haluaisin asiaan vaikuttaa niin mitä minun tulisi tiedustella/vaatia palvelun tarjoajalta.
(Voitteko laittaa palvelimeni päivittymään automaattisesti x ajan kuluessa?)?
Ei ole kyse mistään palvelimen päivittymisestä vaan siitä, että palvelin antaa selaimelle luvan tallentaa sivun välimuistiin (ts. ei kiellä tallentamista), jolloin selain ei edes yritä ladata uutta sivua. Voisit kysyä, onko mahdollista säätää välimuistiasetuksia (Expires, Cache-Control), koska haluaisit saada selaimen välimuistin vanhenemaan ajassa X. Toisaalta voisit myös selvittää, onko palvelimella käytössä PHP tai htaccess. Mielestäni on epätodennäköistä, että jonkin ilman skriptitukea toimivan halpispalvelimen ylläpito suostuisi säätämään asetuksia yhden käyttäjän tarpeisiin, varsinkin tällaisessa tapauksessa, kun muutos lisäisi palvelimen kuormitusta (sivua ladattaisiin useammin).
Minulla on käytössäni radicenter -palveluntarjoajan palvelin, joten nuo htaccess ja php ovat kyllä kunnossa. Tuo välimuistin vanhenemiskysely kuulostaa järkevimmältä koska itse palvelimeen vaikuttaminen kuulostaa kohtuu väliaikaiselta kun haluaa jotain pysyvää. Esim jos vaikka pyörittäisin omalta palvelimelta jonkun kolmannen osapuolen sivuja, joita loisin useita. Tällöin kaikkiin joutuisi erikseen luomaan nuo palvelimen päivitys skriptit, jotka taas saattaisivat kuormittaa palvelinta turhan paljon. Totta kai tuollainen yksittäisenä ratkaisuna on hyvä.
Kiitoksia vinkeistä.
Postaan lisää kun tiedän enemmän tuosta hommasta.
Voisit siinä tapauksessa kokeilla jotain tällaista .htaccess-tiedostoon:
ExpiresActive On ExpiresDefault A1 <FilesMatch "\.(ico|jpg|jpeg|png|gif)$"> ExpiresDefault "access plus 30 days" </FilesMatch>
Tässä asetetaan muut tiedostot vanhenemaan sekunnissa ja tietyt kuvatiedostot vanhenemaan vasta 30 päivässä.
Hei,
Kysyisin vielä, että onko tuolla väliä, että mihin paikkaan tuo filun tunkee.
Vai tunnistaako serveri sen sitten aina.
Varmaan kannattaa pistää se siihen sivuston juureen.
En tiedä onko se nyt niin hyvä asia, ettei tiedostoja anneta mennä välimuistiin. Testivaiheessa tietenkin on hyvä, kun muutoksia tulee paljon, on hyvä että sivu vanhenee heti, mutta jatkon kannalta voisi olla ihan hyvä antaa selainten kakuttaa sisältöä.
Hei, Metabolix, olen hyvin pahoillani ilmoittaessani, että tuo koodisi ei ilmeisesti toimi. Eli kokeilin eri asioita, muun muassa tuo "ExpiresActive On
ExpiresDefault A1" pelkästään. Tällöin esimerkiksi alatunnisteen vaihto ei toiminut. En haluaisi provosoida tilannetta ja voi olla että olen tehnyt jotain väärin. Pyrin kuitenkin laittamaan loppupeleissä sitten kaikkiin kansioihin tuon saman htaccess filun.
Kysyisinkin tuosta kun ei tuo tiedostomuoto ole kauhean tuttu eli:
Tuleeko siihen mitään nimeä vai pelkkä .htaccess (käytin tuota pelkkää ilman nimeä)
onko tuossa mahdollisesti, jotain tiedostomääre juttuja mitä pitää asettaa.
Sain muuten vastauksen palveluntarjoajalta ettei heillä olisi mitään tekemistä asian kanssa ja ettei asiaa voi serverin asetuksia muuttamalla korjata. Onko tämä ihan paska puhetta?
Mihin laitoit tiedoston, ja millä tavalla se ”ei toimi”? Koodi on varmasti toimiva, joten kaikki mahdolliset viat ovat jossain muualla. Tiedosto kuuluu käytännössä sivuston juureen eli sinne, mihin myös sivustosi index.html tulisi. Tavallisesti asetukset koskevat tällöin kaikkia alihakemistojakin, eli tiedostoa ei tarvitse kopioida useaksi. Jos tiedoston toiminnasta on epävarmuutta, voit kokeilla riviä ”Deny from all”, joka estää kokonaan pääsyn sivustolle; jos sivusto silti toimii, tiedosto on väärässä paikassa tai sitä ei käsitellä, tai sivut tulevat yhä välimuistista eli olet unohtanut tyhjentää välimuistin.
Kaikki ongelmat voi korjata palvelimen asetuksista, mutta kuten sanoin, webhotellin ylläpitäjät eivät varmasti muuta asetuksia vain sinun takiasi varsinkaan tilanteessa, jossa pystyt itsekin korjaamaan ongelman htaccessilla tai PHP:llä.
Opetelkaa devaamaan, pojat. Sekä Firefoxin että Chromen devtoolseissa on jo pitkään ollut täppä välimuistin disabloinnille. Silloin ei tarvitse kikkailla. Samaisesta paikasta voi myös katsoa, mitä otsikkotietoja palvelin lähettää ja miten selain pyytää tietoa palvelimelta. Nykyään ei ole enää mitään tarvetta tällaiselle sokkona arpomiselle.
Aihe on jo aika vanha, joten et voi enää vastata siihen.