Re: Firefox : rafraichissement fantaisiste

Top Page

Reply to this message
Author: Stéphane Bonhomme
Date:  
To: Frédéric
CC: ML Guilde
Subject: Re: Firefox : rafraichissement fantaisiste
Frédéric a écrit :
> Bonjour,
>
> Je suis en train de mettre au point un script mod_python, que j'envoie sur
> le serveur à chaque modification.
>
> Derrière, je recharge la page depuis Frefox, et les résultats sont
> complètement fantaisistes : le code reçu n'est pas toujours le dernier.
>
> Pire, en faisant plusieurs rechargements successifs, sans rien changer sur
> le serveur, je reçois le code de la version n-1, n-2, voir plus, et ce de
> façon aléatoire à chaque rafraichissement !!!
>
> C'est quoi ce bins ? Je précise que je ne suis derrière aucun proxy...
>
> Merci de vos lumières.
>
>

Tu as ces résultats avec des requêtes xmlhttprequest ou des requêtes sur
des pages completes, en tout étant de cause, il existe des directives
dans l'en-tête http que tu devrais utiliser dans tes réponses pour dire
au navigateur de ne pas mettre en cache tes données si celles-ci sont
"vivantes" :

En HTTP/1.0 :
Pragma:no-cache
En HTTP/1.1
Cache-Control:no-cache

Si tu ne veux pas empêcher le cache de fonctionner, tu peux alors
utiliser l'en-tête d'expiration :

Expires: Thu, 01 Dec 1994 16:00:00 GMT

qui indique la date à laquelle la ressource doit être rechargée.
J'utilise en général ce champ en plus du Cache-control pour certains
navigateurs qui ne comprennent pas la directive cache-control.

D'une manière générale le mécanisme est bien décrit dans la rfc 2616
seciont 14.9
http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html

Une autre technique pour "berner" le navigateur et son cache sur les
requêtes http est d'ajouter un champ dans les requêtes GET qui sera
différent à chaque requête (timestamp par exemple - avec la fonction js
Time.time())
au lieu de
http://foo/collection/resource, tu fais la requête sur :
http://foo/collection/resource?timestamp=1726535654
il faut prendre garde si tu utilises deja des parametres :
http://foo/col/res?idres=42 devient :
http://foo/col/res?idres=42&timestamp=172634559

Bon courage
Stéphane.
--

           Stéphane Bonhomme           --           Exselt Services


        Formations, Conseil et Réalisations en Ingénierie Documentaire,
                    Technologies Web et Logiciels Libres 
             stephane@???   -   http://www.exselt.com
                04 57 39 30 78        /      06 88 57 27 08