Mise en cache dans les navigateurs

by Christian on 6 janvier, 2008

Internet Explorer et Opera (pas Firefox et Safari) mettent en cache les URLs requêtées. C’est pratique quand on revient sur les mêmes pages car c’est beaucoup plus rapide à l’affichage, étant donné que le navigateur avait l’URL et sa dernière réponse en cache.

Mais quand on fait de l’asynchrone en javascript, les Callbacks du navigateur ne vont pas rééllement voir ce qu’il y a de nouveau à l’URL, car il retourne inlassablement la réponse qui est en cache et qui correspond à l’URL mémorisée.
Pour ne pas avoir de surprise il faut que le javascript génère des URLs bidons à chaque nouvelle requête.

Est-ce bien, est-ce mal ?

Print Friendly
Signaler sur Twitter
Autres notes similaires :
  • URI design
    Je regarde une note de Yves-Marie Pondaven dans laquelle il indique un site dont l’ergonomie est remarquable et dont les URLs sont « propres ». Je vais sur leur page d’accueil et reste un moment à passer la souris sur les liens pour voir les URLs et admirer le « design des URIs ». Mais voilà que ma femme [...]......
  • getChristianFaureAge ( )
    En javascript, la fonction : getTime( ) renvoie le temps écoulé en milisecondes depuis le 1 Janvier 1970. A quelques jours près, cette fonction donne mon âge. Signaler sur Twitter......
  • Petit sondage sur Google
    Vous recevez un mail de Google vous indiquant que la plupart des services de Google en version gratuite vont disparaître : Gmail, Google Apps, Google Reader, Google Sites et iGoogle . Google vous invite à souscrire à une version payante de tous ces services, qui offre notamment quelques avantages comme : plus de capacité de [...]......
  • { 8 comments… read them below or add one }

    Aurélien janvier 6, 2008 à 10:33

    C’est de la bidouille!! Malheureusement pour que ça marche avec des navigateurs ne respectant pas les standards on est souvent obligé de bidouiller.

    Sinon la bonne méthode c’est d’utiliser les entêtes Http:
    Cache-Control: no-cache
    http://tools.ietf.org/html/rfc2616#section-14.9.1

    Répondre

    Christian janvier 6, 2008 à 11:39

    Si çà marche (avec les entêtes http) c’est que çà veut dire qu’Internet Explorer modifiera son comportement dans sa gestion des caches en respectant le RFC de HTTP ?
    T’es sûr ?

    Sinon, merci pour le bon lien :-)

    Répondre

    Olivier G. janvier 7, 2008 à 11:12

    Et surtout, les URL ne sont-elles pas sensées donner toujours la même ressource ? Sinon, il serait préférable de faire une requête POST (ce que fait AJAX je crois).

    Répondre

    Christian janvier 7, 2008 à 12:02

    @Olivier : en fait une requête javascript peut appeler une même URL tout en changeant l’URL dans ses paramètes. C’est l’appli web, côté serveur, qui éliminera l’aspect « bidon » de l’URL.
    Tu peux bien sûr faire une requête POST, mais c’est parfois la requête GET qui s’impose logiquement. En Ajax, il n’y a rien qui impose d’utiliser uniquement des POST que je sache.

    Répondre

    Christophe janvier 7, 2008 à 3:14

    Le plus « propre » est d’utiliser ces URL bidons pour stocker l’état de l’application et ainsi le restituer ultérieurement (via back, next ou un favori).
    Ainsi on préserve le principe et le rôle de chaque URL.

    Répondre

    willykean janvier 22, 2008 à 7:21

    Excusez mon ignorance, mais je ne comprends rien de rien.

    Pourriez vous me dire si mes lecteurs pourront toujours me lire même lorsque je suis en cache, parce que j’ai l’impression que les visiteurs ont déserté mon blog et je rends les caches responsables de ce fait.

    Et pourquoi suis en cache maintenant?

    Je n’ai rien demandé moi?

    Aidez moi§

    Merci d’avance

    Hortense

    Répondre

    Christian janvier 22, 2008 à 10:46

    Pas de problème avec ton blog Hortense, la raison de la désertion doit être cherchée ailleurs.
    Bon courage !

    Répondre

    wilykean janvier 23, 2008 à 9:09

    Merci Chistian

    Je vais donc arrêter de me tourmenter pour le problème de cache et chercher d’autres raisons. J’ignore comment, l’avenir me le dira

    Bonne journée

    Répondre

    Leave a Comment

    Previous post:

    Next post: