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 :

Mise en cache des .js et propriété "target"


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 79
    Points : 39
    Points
    39
    Par défaut Mise en cache des .js et propriété "target"
    Bonjour,

    J'essaie de régler un problème de temps d'accès à une application Web J2EE (Cf autre post ici)

    Je me pose une question bien précise : Lorsqu'une page qui fait appel à un fichier JavaScript est ouverte dans 2 onglets différents sous Firefox, du fait qu'ils ont été ouverts via 2 liens ayant une valeur différente pour la propriété "target", est-ce que le cache est censé fonctionner pour le fichier JavaScript et les images ?

    J'ai l'impression que ce n'est pas le cas, et ça me pose un sérieux problème.

    Y a-t-il une astuce pour forcer Firefox à mettre le fichier JavaScript et le réutiliser, y compris pour une fenêtre qui n'a pas le même nom ?

    Merci d'avance.

  2. #2
    Membre expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 239
    Points
    3 239
    Par défaut
    Normalement, le fichier JavaScript est mis en cache SI l'URL utilisée dans les deux pages est STRICTEMENT IDENTIQUE (y compris les paramètres, ...)

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 79
    Points : 39
    Points
    39
    Par défaut
    Merci pour cette réponse. J'ai bien vérifié, l'URL des scripts est strictement identique entre 2 pages, et pourtant, Firebug n'affiche pas la mention "dont xxxKo depuis le cache".

    Par contre, j'ai trouvé dans l'entête des fichiers JavaScript :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Pragma	No-cache
    Cache-Control	no-cache
    Ca pourrait bien être l'origine de mon problème...
    Comment fait-on pour indiquer que les scripts doivent être mis en cache ? Est-ce que la page HTML qui les appelle qu'il faut changer ces options ?

  4. #4
    Membre expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 239
    Points
    3 239
    Par défaut
    Non, c'est sur ton serveur qu'il faut le faire.
    Soit dans la config de celui-ci, soit en PHP, ASP, JSP, ...

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 79
    Points : 39
    Points
    39
    Par défaut
    J'ai réussi à modifier l'entête HTTP des images et de certains fichiers JavaScript (via un filtre de servlet, puisque je suis dans une application J2EE), pour avoir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Server	Apache-Coyote/1.1
    Pragma	Cache
    Cache-Control	public, max-age=604800
    Expires	mer., 7 nov. 2007 13:36:50 GMT
    Etag	W/"2936-1193216803843"
    Last-Modified	Wed, 24 Oct 2007 09:06:43 GMT
    Content-Type	text/javascript
    Content-Length	2936
    Date	Wed, 31 Oct 2007 13:36:50 GMT
    A présent, le cache fonctionne bien pour les images (il n'y a même plus de requête envoyée au serveur pour récupérer les images).


    Par contre, ce n'est pas le cas pour les fichiers JavaScript :

    - Si je rafraichis une page déjà affichée, il émet une requête, et récupère finalement les fichiers JavaScript dans le cache => OK
    - Par contre, lorsque je clique sur un lien avec target="uneValeur", la page qui s'ouvre dans un autre onglet Firefox contient une référence aux mêmes fichiers, mais tous ces fichiers sont de nouveau récupérés depuis le serveur, et non pas depuis le cache.

    Pourtant, l'entête HTTP de ces fichiers JavaScript est toujours le même dans le nouvel onglet.
    D'où cela peut-il venir ?

  6. #6
    Membre expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 239
    Points
    3 239
    Par défaut
    Là j'avoue que je sèche...
    Qu'il refasse une requête, je peux comprendre les fichiers JS sont parfois dynamique. Mais qu'il n'écoute pas le cache si il convient, je pige pas...
    IE fait il de même ?

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 79
    Points : 39
    Points
    39
    Par défaut
    Je n'ai pas fait le test sous IE, car je me focalise vraiment sur Firefox puisque cette application est optimisée pour.
    D'ailleurs, y a-t-il un équivalent de Firebug sous IE, pour le débuggage ?

  8. #8
    Membre expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 239
    Points
    3 239
    Par défaut
    Oui cela existe mais pour ce qui t'intéresse, je te conseille l'excellent Fiddler

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 79
    Points : 39
    Points
    39
    Par défaut
    OK, merci. A l'occasion je redarderai Fiddler.

    En attendant, si quelqu'un a des pistes sur la façon dont Firefox gère le cache, dans mon exemple précis... Ce sera le bienvenue !
    Merci encore

Discussions similaires

  1. Mise en cache des résultats SQL Server
    Par Ultiny dans le forum Accès aux données
    Réponses: 1
    Dernier message: 17/02/2007, 12h11
  2. mise en cache des result set de grosses requêtes
    Par gaboo_bl dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 16/01/2007, 13h02
  3. Empêcher la mise en cache des images
    Par oranoutan dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 15/02/2006, 11h49

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