De titel klinkt als een veel herhaalde kwelling en helaas is het mij nog niet gelukt deze kwelling te verdrijven.
Ik ben een CMS aan het bouwen, waarbij ik statische HTML pagina's genereer. Het CMS laadt de html-pagina's in een frame, en een javascript functie in het overkoepelende bestand frames.php (met daarin frameset) plakt events aan elementen in de html-pagina's die in het frame worden ingeladen.
Het CMS werkt als een zonnetje, met maar 1 duistere zwarte wolk die zeer bepalend is voor de usability; de aangepaste statische html files lijken de cache van webbrowser niet te kunnen omzeilen en tonen de oude html files, in plaats van de zojuist gegenereerde html files.
Ik heb flink gegoogled en heb verschillende oplossingen voorbij zien komen. Helaas blijken deze oplossingen verouderd, of niet geschikt voor standaard hosting.
Ik heb het volgende geprobeerd in de statische html files:
Het volgende heb ik geprobeerd in frames.php file (met daarin de frameset en dus ook het frame waarin de html files worden ingeladen):
Met javascript in de frames.php heb ik het ook geprobeerd:
Ik ben een CMS aan het bouwen, waarbij ik statische HTML pagina's genereer. Het CMS laadt de html-pagina's in een frame, en een javascript functie in het overkoepelende bestand frames.php (met daarin frameset) plakt events aan elementen in de html-pagina's die in het frame worden ingeladen.
Het CMS werkt als een zonnetje, met maar 1 duistere zwarte wolk die zeer bepalend is voor de usability; de aangepaste statische html files lijken de cache van webbrowser niet te kunnen omzeilen en tonen de oude html files, in plaats van de zojuist gegenereerde html files.
Ik heb flink gegoogled en heb verschillende oplossingen voorbij zien komen. Helaas blijken deze oplossingen verouderd, of niet geschikt voor standaard hosting.
Ik heb het volgende geprobeerd in de statische html files:
- Verscheidene soorten van meta tags, te weten:
code:1 2 3 4
<meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="-1"> <meta name="Build" content="2008-04-06 20:04:34" >
- Gebruik van .htaccess headers voor cache control, maar deze worden niet ondersteund door de meeste hosting bedrijven en leveren daarom enkel een foutmelding op.
Het volgende heb ik geprobeerd in frames.php file (met daarin de frameset en dus ook het frame waarin de html files worden ingeladen):
- Alle bovenstaande meta tags
- PHP header (maar deze heeft blijkbaar -zoals verwacht- alleen invloed op code in frames.php, en niet op de files die worden ingeladen in de frameset)
code:
1
| header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); |
Met javascript in de frames.php heb ik het ook geprobeerd:
- Koppelen van 'junk' aan de url, zodat deze uniek zou moeten zijn:
code:1
frames[0].window.location = "../"+url_location+"?junk="+(new Date()).valueOf();
Middels javascript reloaden (lelijke oplossing -> knop die refreshed door de huidige url te verrijken met de junk tail) lijkt te werken, maar wanneer er weer genavigeerd wordt middels links in de html pagina's worden de oorspronkelijke -verouderde- html pagina's getoond. Om nu bij elke page load (opgevangen in frames.php) de url op te halen, junk tail te plakken, en opnieuw te laden lijkt me te veel van het goede. Tevens zal de 'oude' html getoond worden op de site van de gebruiker wanneer het CMS wordt verlaten.