datagott > internet.* > internet.www.ontwerp

Sjoerd (21.07.2019, 22:56)
Ik heb een html-pagina die nogal eens wordt geactualiseerd. Maar als de
pagina vanuit de cache geladen wordt, dan komen de veranderingen niet
door. Na enig zoekwerk is dit wat dan in het 'head'-gedeelte zou moeten
staan:

<meta http-equiv="Cache-control" content="no-cache, no-store, must-revalidate">
<meta http-equiv="Pragma" content="no-cache">

Maar ik heb gezien dat dit niet werkt. Je hebt ook dit:

<meta http-equiv="refresh" content="1"/>

Maar dan herlaadt-ie iedere seconde opnieuw, dat is ook weer niet de
bedoeling.
Mogelijk zou dit in de <body>-tag kunnen staan:

<body onload="javascript:document.location.reload(true)" >

Maar dat werkt weer alleen als Javascript is ge-enabled op iemands browser.

Iemand enig idee wat de beste manier is?
BugHunter (21.07.2019, 23:33)
Sjoerd <xx> schreef op Zo 21 Jul 2019 om 22:56:
[..]
> Maar dan herlaadt-ie iedere seconde opnieuw, dat is ook weer niet de
> bedoeling.
> Mogelijk zou dit in de <body>-tag kunnen staan:
> <body onload="javascript:document.location.reload(true)" >
> Maar dat werkt weer alleen als Javascript is ge-enabled op iemands browser.
> Iemand enig idee wat de beste manier is?


Voor Windows: F5
Rob (22.07.2019, 10:22)
Sjoerd <xx> wrote:
> Ik heb een html-pagina die nogal eens wordt geactualiseerd. Maar als de
> pagina vanuit de cache geladen wordt, dan komen de veranderingen niet
> door. Na enig zoekwerk is dit wat dan in het 'head'-gedeelte zou moeten
> staan:
> <meta http-equiv="Cache-control" content="no-cache, no-store, must-revalidate">
> <meta http-equiv="Pragma" content="no-cache">
> Maar ik heb gezien dat dit niet werkt.


Dan is je browser stuk. Maar dat komt steeds vaker voor tegenwoordig,
dat browsermakers bepaalde dingen ineens niet meer ondersteunen omdat
ze het nut er niet van inzien of ze denken dat het misbruikt wordt.
Helaas helaas...

> <meta http-equiv="refresh" content="1"/>
> Maar dan herlaadt-ie iedere seconde opnieuw, dat is ook weer niet de
> bedoeling.


Sterker nog, dat is heel wat anders dan waar je om vroeg!
Het kan wel zijn dat je dit wilt combineren maar het heeft niks te
maken met dat cache probleem.

> Mogelijk zou dit in de <body>-tag kunnen staan:
> <body onload="javascript:document.location.reload(true)" >
> Maar dat werkt weer alleen als Javascript is ge-enabled op iemands browser.
> Iemand enig idee wat de beste manier is?


Ik denk dat het enige wat echt altijd werkt is om je site helemaal om
te bouwen naar de manier waarop dat tegenwoordig altijd werkt.
(websockets die gegevens dynamisch ophalen en lokaal in de pagina zetten)

Maar dat wil je vast niet.
Dan er maar mee leven denk ik.
robert (22.07.2019, 10:38)
Rob <nomail>:
> Sjoerd <xx> wrote:
> Dan is je browser stuk.


Het zijn HTTP-headers die in de HTTP-response moeten staan. Dat sommige
browsers deze twee wel ondersteunen is mooi meegenomen, maar je mag er
niet op vertrouwen dat het in Úlke browser werkt. Zowel `cache-control`
en `pragma` zijn nergens gedefinieerd voor `<meta http-equiv>`.

> Ik denk dat het enige wat echt altijd werkt is om je site helemaal om te
> bouwen naar de manier waarop dat tegenwoordig altijd werkt. (websockets
> die gegevens dynamisch ophalen en lokaal in de pagina zetten)


Of de server configureren zodat ie fatsoenlijke headers meestuurt.
Erik Baas (22.07.2019, 10:57)
Op 21-07-2019 om 22:56 schreef Sjoerd:
> Ik heb een html-pagina die nogal eens wordt geactualiseerd. Maar als de
> pagina vanuit de cache geladen wordt, dan komen de veranderingen niet
> door.


Met AJAX (*) kun je de _inhoud_ van (delen van) de pagina actueel houden.

*: Asynchronous JavaScript and XML, zie
[..]

Een andere manier is om aan de URL een parameter toe te voegen die
telkens verandert, bv. een oplopende of random teller. Daarmee dwing je
de browser om de nieuwste versie op te halen.
Sjoerd (22.07.2019, 12:49)
Rob schreef:
> Ik denk dat het enige wat echt altijd werkt is om je site helemaal om te
> bouwen naar de manier waarop dat tegenwoordig altijd werkt.
> (websockets die gegevens dynamisch ophalen en lokaal in de pagina zetten)


Voor iemand voor wie dit nieuw is, is het even wat uitzoekerij om er achter
te komen wat je nou bedoelt. Wat is een websocket, om te beginnen.
Maar ik zal het in de gaten houden.

> Maar dat wil je vast niet.


Ik vraag me werkelijk af waardoor die indruk bij jou wordt gewekt.
Sjoerd (22.07.2019, 12:50)
Erik Baas:
> Sjoerd:
> > Ik heb een html-pagina die nogal eens wordt geactualiseerd. Maar als de
> > pagina vanuit de cache geladen wordt, dan komen de veranderingen niet
> > door.

> Met AJAX (*) kun je de _inhoud_ van (delen van) de pagina actueel houden.
> *: Asynchronous JavaScript and XML, zie
> [..]


Dat ziet er interessant uit. Ook hier op W3Schools een heel heldere
uiteenzetting: [..]

Het leunt dus wel weer op Javascript, dat in de browser moet zijn
geactiveerd. Geen idee in hoeverre je daar tegenwoordig ernstig rekening
mee moet houden.

> Een andere manier is om aan de URL een parameter toe te voegen die
> telkens verandert, bv. een oplopende of random teller. Daarmee dwing je
> de browser om de nieuwste versie op te halen.


In de statistieken zie ik dat de betreffende pagina vaak de eerste, en ook
de enige, is via welke men de site binnenkomt. Waarschijnlijk gebookmarked.
En ja, dan stuit men op niet-bestaande pagina's.
Rob (22.07.2019, 14:13)
Sjoerd <xx> wrote:
> Rob schreef:
>> Ik denk dat het enige wat echt altijd werkt is om je site helemaal om te
>> bouwen naar de manier waarop dat tegenwoordig altijd werkt.
>> (websockets die gegevens dynamisch ophalen en lokaal in de pagina zetten)

> Voor iemand voor wie dit nieuw is, is het even wat uitzoekerij om er achter
> te komen wat je nou bedoelt. Wat is een websocket, om te beginnen.
> Maar ik zal het in de gaten houden.


Nou je kunt dit natuurlijk uitbesteden aan een of ander CMS wat al zo
werkt.

>> Maar dat wil je vast niet.

> Ik vraag me werkelijk af waardoor die indruk bij jou wordt gewekt.


Omdat je al begon met "maar ja als de mensen javascript hebben uitgezet
dan werkt dit niet". Dit soort oplossingen is 100% afhankelijk van
javascript, dus dat wil je dan vast niet.
Soortgelijke onderwerpen