J'ai un utilisateur qui essaie d'afficher les questions d'un examen en ligne. Pendant l'examen, ils sélectionnent 1 des 4 réponses et cliquent sur "Répondre". Pour cet utilisateur, il semble charger la même page/question encore et encore, où il devrait passer à une nouvelle question après chaque réponse à une question. Je suppose que c'est la mise en cache, mais cela ne semble pas être la mise en cache du navigateur car ils ont essayé Internet Explorer et Firefox. Ils utilisent Internet par satellite, donc je suppose qu'il y a une autre mise en cache sur leur réseau/routeur.Quelles sont les méthodes pouvant être utilisées pour éviter qu'une page ne soit mise en cache par le navigateur?
Voici les en-têtes envoyés à partir du serveur.
HTTP/1.1 200 OK
Date: Tue, 03 Mar 2009 05:52:38 GMT
Server: Apache/2.2.8 (Unix)
X-Powered-By: PHP/5.2.6
Set-Cookie: PHPSESSID=[...]; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Connection: close
Content-Type: text/html; charset=UTF-8
J'ai demandé à l'utilisateur de réinitialiser complètement les paramètres de son navigateur, mais cela n'a pas fait de différence. J'ai ajouté un horodatage à la requête GET/chaîne de la page, tels que:
/path/question.php?exam_id=2323&user_exam_id=2334×tamp=1236063834
Quelles sont les autres méthodes puis-je utiliser pour forcer l'ordinateur de l'utilisateur pour actualiser la page sur chaque chargement de page?
Le serveur exécute Apache, PHP, MySQL.
Comment cela affecterait-il la mise en cache? L'ID de session est le même pour chaque page de la session en cours. –
Je ne pense pas que cela ait quelque chose à voir avec la mise en cache. Vous avez déjà tous les cachebuster connus de l'homme dans ces en-têtes; sent beaucoup plus comme votre application ne fonctionne pas sans cookies. – bobince
Darryl, je pense que cela dépend de la façon dont vous gérez la session. Vous pouvez, facultativement, conserver cela dans la mémoire locale sur le serveur et ne pas utiliser un cookie. Se souvenir que le client est (par défaut) complètement apatride. –