De keuze is heel simpel:
- We laten de browser bepaalde zaken cachen, denk dan aan plaatjes, scripts, andere dingen die niet vaak veranderen. Alles wat via index.php geladen wordt, wordt niet gecached omdat dit o.a. je topics, antwoorden, pm's en -jawel daar is hij- zoekopdrachten zijn.
Deze laatste groep kan niet gecached worden omdat je niet met oude informatie wil werken.
- We laten de browser helemaal niets cachen, of we laten het de browser zelf uitzoeken wat hij doet (in de meeste gevallen dus niets cachen). Dit zorgt voor een toename in de belasting op de server en een grote toename in het dataverkeer, want alles moet bij iedere keer dat je een pagina opvraagt opnieuw gedownload worden.
Dit zijn de enige 2 opties die we hebben vanwege hoe SMF ontworpen is. Het is onmogelijk om bepaalde acties (het weergeven van een topic bijv.) niet te cachen, en een andere actie (het weergeven van de zoekresultaten bijv.) wel.
De reden dat we bij de overgang caching hebben aangezet is dat er voor beveiligde verbindingen meerdere keren per verzoek (dus per plaatje, per script, enz.) een aantal verzoeken heen en weer moeten tussen onze server en jouw browser. Dit kan bij drukte of een slechte internetverbinding het forum traag maken en het vergroot de belasting op de server.
Verder bespaart het ook enorm op bandbreedte wat voor mobieltjes of mensen met een trage verbinding interessant is. We waren voor de SSL-overgang al van plan om caching aan te zetten om deze reden. Dat deze twee ongeveer tegelijk ingevoerd zijn heeft te maken met hoe we dingen uitzoeken, plannen en testen.
Dus ja, het is onhandig en ik had het zelf ook graag anders gezien, maar ik denk dat we toch de juiste keuze gemaakt hebben door het grootste deel van wat mensen hier op het forum doen te versnellen.
Verder:
Ik heb het getest, en in Chrome en Opera (versie 12) gaat het wel goed. Het probleem zit in de recente versies (na 32) van Firefox.
De oorzaak is dat de server via "cache control" en "expires" headers je browser vertelt welke pagina's en onderdelen gecached mogen worden en welke niet. Een ander deel van de oorzaak is dat het zoeken gaat door de inhoud van het zoekveld via een POST-request naar de server te sturen.
Firefox heeft sinds kort wat aanpassingen gedaan zodat die beter luistert naar wat de server vertelt. De redenering is dat je niet wil dat je nog een extra bestelling plaatst bij een webwinkel, of nog een item verwijdert uit een bepaalde lijst of andere vergelijkbare dingen als je op de terugknop drukt.
Het is dus een extra veiligheidsmaatregel.
Een makkelijke oplossing is er helaas niet, omdat het forum bijna alles via hetzelfde index.php script doet. Het forum zelf bepaalt ook dat bepaalde dingen niet gecached moeten worden (je wil geen "nieuwe berichten" die al een dag in de cache zitten, je wil de echte nieuwe hebben). We kunnen dus niet zomaar alle caching uitzetten, want dan wordt het hele forum 10x zo traag.
Wat je wel kan doen om er omheen te werken: Gebruik een andere browser zoals Chromium of Chrome. Je kan ook met de middelste muisknop op een resultaat klikken om hem te openen in een nieuwe tab. Zo hoef je niet iedere keer terug te gaan naar de zoekpagina.
Je kan ook nog op de "probeer opnieuw" knop drukken zodat de pagina opnieuw geladen wordt.
Verdere discussie over de cache graag in
dat topic.