IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Actualiser une page sans en recharger les images, les sons.


Sujet :

JavaScript

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 34
    Par défaut Actualiser une page sans en recharger les images, les sons.
    Bonjour,
    J'ai une page web affichée sur un écran tactile qui constitue une sorte de borne interactive. La mise à jour du contenu de la page est réalisée via Ajax. Cette page utilise de images et des sons. Tous les soirs à minuit la page se recharge avec "window.location.reload()" afin de récupérer une éventuelle nouvelle version de la page (de la page en elle-même, pas des données qu'elle contient). Mon problème est que "window.location.reload()" force manifestement le navigateur à recharger toutes les images et les sons utilisés sur la page ce qui génère un trafic inutile puisque chaque son et chaque image possède une URL unique. Je voudrais donc que le navigateur continue à utiliser son cache. Une idée ?
    Merci...

    P.S. : Si je clique sur "Entrée" dans la barre d'adresse d'Internet Explorer j'obtiens le comportement souhaité : La page est rechargée, mais pas les ressources qui sont déjà présentes dans le cache. Par-contre dans Firefox tout est rechargé.

  2. #2
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut
    il suffit d'activer le cache du navigateur

    A+JYT

  3. #3
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Par défaut
    Si tu veux un contrôle plus poussé des éléments mis en cache, je te suggère de te renseigner sur l'applicationCache. Cela te permet de spécifier directement les fichiers à mettre en cache et le navigateur ne prend même plus la peine de requêter ces fichiers. C'est d'ailleurs ça qui permet de faire des sites consultables sans connexion Internet.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 34
    Par défaut
    Bonjour et bonne année,
    Merci pour ces réponses.
    Quelques remarques :
    - Même si le cache du navigateur est activé, un "window.location.reload()" recharge toutes les ressources de la page, sauf si des directives de cache (Cache-Control, Expires, Last-Modified) figurent dans les entêtes de la réponse. Par exemple, si dans la réponse figurent les directives suivantes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Cache-Control: public, max-age=86400
    Expires: Fri, 11 Jun 2021 11:33:01 GMT
    Last-Modified: Mon, 07 May 2007 17:05:06 GMT
    Le navigateur lors d'un rechargement de la page se contentera d'un réponse 304 (lui confirmant que son cache est à jour) car il fera figurer dans ses entêtes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If-Modified-Since: Mon, 07 May 2007 17:05:06 GMT
    J'ai tracé cela avec Fiddler, mais je n'ai trouvé aucun moyen d'éviter que le navigateur n'envoie une requête pour vérifier que son cache est à jour.
    - L'Application Cache semble intéressant, mais il faut gérer des fichiers "manifest" et dans ce que je viens d'en lire, il n'est pas précisé quel comportement le navigateur aura lors d'un rechargement de la page avec "window.location.reload()" (par exemple) :
    2.Lors des visites ultérieures de ce document, le navigateur chargera le document et les autres ressources précisées dans le manifest à partir du cache d'application — et non du serveur.
    Bonne journée et encore merci pour ces réponses...

  5. #5
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Par défaut
    Citation Envoyé par scarlatine Voir le message
    il n'est pas précisé quel comportement le navigateur aura lors d'un rechargement de la page avec "window.location.reload()" (par exemple) :
    l'applicationCache est distinct du cache automatique, que tu recharges la page avec window.location.reload() ou avec le bouton actualiser, le mécanisme est le même : celui que tu as mis en citation.

Discussions similaires

  1. [AJAX] Raffraichir une page sans la recharger
    Par JClens dans le forum AJAX
    Réponses: 3
    Dernier message: 17/09/2010, 16h02
  2. Réponses: 2
    Dernier message: 20/07/2009, 14h02
  3. [PHP-JS] Actualiser une page sans la rafraichir
    Par skyangel20 dans le forum Langage
    Réponses: 4
    Dernier message: 01/11/2007, 16h16
  4. Modifier une page sans la recharger...
    Par Ylias dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 10/05/2006, 11h06
  5. charger une page sans tout recharger
    Par budylove dans le forum Balisage (X)HTML et validation W3C
    Réponses: 11
    Dernier message: 21/10/2005, 11h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo