ik zit al een tijdje met de issue dat de pagina's die ik genereer in php mbv grote mysql queries veel performance van de server vergen.
nu heb ik een systeempje uitgeprobeerd dat, zodra de pagina gerenderd is, de url-string van de php pagina (bijv. index.php?pap=1&kaas=2) omzet naar een md5 hash en vervolgens dit als bestandsnaam gebruik om de gegenereerde pagina op te slaan als file op de server. de volgende keer dat deze url wordt opgevraagd wordt bovenaan het script eerst de md5 hash weer berekend en vervolgens gecheckt of de overeenkomstige string al op de server staat (bijv. cache/1ac02f9ef31d28c3a71v2a893e719237). zo ja, dan haalt-ie deze op en dumpt-ie deze naar de output buffer ipv. dat het hele script met queries en alles opnieuw berekent hoeft te worden. dit scheelt best wel in tijd.
echter een aantal vragen:
1. is wat ik doe hier waterdicht? of ben ik heel fout bezig?
2. maakt het niet uit hoe lang de bron string is bij het berekenen naar een md5 hash? aangezien de url strings weleens heel lang kunnen worden door alle get params die meegegeven kunnen worden...
3. is het erg dat ik de hexadecimale md5 waarde als een string toepas?
4. zijn er andere caching systemen te bedenken zonder dat je daarbij aan de server hoeft te komen (i.e. software installeren)?
nb: ik check de datum dat de file is weggeschreven, als deze langer dan bijv. 12 uur geleden is dan de huidige tijd dan wordt de cachefile als verouderd verklaard en wordt het script wel opnieuw gerenderd en direct weggeschreven als cachefile.
groeten, jeroen.
nu heb ik een systeempje uitgeprobeerd dat, zodra de pagina gerenderd is, de url-string van de php pagina (bijv. index.php?pap=1&kaas=2) omzet naar een md5 hash en vervolgens dit als bestandsnaam gebruik om de gegenereerde pagina op te slaan als file op de server. de volgende keer dat deze url wordt opgevraagd wordt bovenaan het script eerst de md5 hash weer berekend en vervolgens gecheckt of de overeenkomstige string al op de server staat (bijv. cache/1ac02f9ef31d28c3a71v2a893e719237). zo ja, dan haalt-ie deze op en dumpt-ie deze naar de output buffer ipv. dat het hele script met queries en alles opnieuw berekent hoeft te worden. dit scheelt best wel in tijd.
echter een aantal vragen:
1. is wat ik doe hier waterdicht? of ben ik heel fout bezig?
2. maakt het niet uit hoe lang de bron string is bij het berekenen naar een md5 hash? aangezien de url strings weleens heel lang kunnen worden door alle get params die meegegeven kunnen worden...
3. is het erg dat ik de hexadecimale md5 waarde als een string toepas?
4. zijn er andere caching systemen te bedenken zonder dat je daarbij aan de server hoeft te komen (i.e. software installeren)?
nb: ik check de datum dat de file is weggeschreven, als deze langer dan bijv. 12 uur geleden is dan de huidige tijd dan wordt de cachefile als verouderd verklaard en wordt het script wel opnieuw gerenderd en direct weggeschreven als cachefile.
groeten, jeroen.