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 :

comment faire pour que mes scripts ne soient pas mis en cache ?


Sujet :

JavaScript

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

    Informations forums :
    Inscription : Avril 2006
    Messages : 530
    Points : 316
    Points
    316
    Par défaut comment faire pour que mes scripts ne soient pas mis en cache ?
    Bonjour à tous,

    J'écris un programme web qui est encore en cours de développement mais déjà utilisé par le client.

    lorsque je fais des modifications sur mes fonctions javascripts celle-ci ne sont pas forcément mises à jour sur les postes des utilisateurs car ils sont placés en cache.

    Je demande à mes clients d'utiliser Firefox lorsqu'ils utilisent ce programme ce qui les oblige à faire : "outils/options/vider le cache maintenant" pour mettre à jour les scripts.

    J'ai essayé de mettre ceci dans différentes pages :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    <meta http-equiv="expires" content="0">
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache, must-revalidate">
    mais les scripts semblent quand même mis en cache...

    y-a-t-il quelque chose de faisable pour que les scripts ne soient pas mis en cache ou peut-être plutot pour que le cache soit vidé à chaque démarrage du programme ?

    Internet-explorer a une option de ce genre qui permet de verifier s'il existe une version plus récente à chaque ouverture de la page. cela ne semble pas exister dans Firefox ?

    Je préférerai quand même un fragment de code pour obtenir ce résultat.

    Merci d'avance pour vos réponses

  2. #2
    Rédacteur
    Avatar de marcha
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2003
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Points : 2 351
    Points
    2 351
    Par défaut
    Salut,

    Tu peux définir une politique de cache dans les fichiers .htaccess sur
    ton serveur.

    Sinon tu peux aussi servir les fichiers .js via une page php qui fixe
    des entêtes HTTP pour la gestion du cache. (même en-têtes que
    la solution avec .htaccess)

    Mais le plus simple en cours de développement c'est de modifier l'url
    du script.

    par exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <script type='text/javascript' src='fichier.js?v=1234'>
    si "v" change, alors le navigateur recharge le script car l'url change.

    si tu génère tes page en php, alors tu peux facilement générer
    les balises script avec une valeur différente pour "v".

    une bonne approche est d'utiliser filemtime('fichier.js') pour "v"
    ainsi le script n'est rechargé que si il a réellement changé.
    Si ton code fait plus d'une ligne, c'est que tu as mal choisi ton langage !

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    530
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 530
    Points : 316
    Points
    316
    Par défaut
    Bonjour Marcha,

    Merci de ta réponse

    Ta solution pour le développement en cours me parait très pratique effectivement.

    je vais l'appliquer

    Tu peux définir une politique de cache dans les fichiers .htaccess sur
    ton serveur.
    as tu un lien à m'indiquer pour trouver un exemple de rédaction de ce fichier .htaccess ?

    Bonne journée

  4. #4
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2005
    Messages
    357
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2005
    Messages : 357
    Points : 537
    Points
    537
    Par défaut
    Et puis un petit truc avec Firefox : Ctrl + F5 force le rechargement complet de la page.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    530
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 530
    Points : 316
    Points
    316
    Par défaut
    Merci beeboo

    c'est un bon petit truc pour le développement

    Mais pour le client il faut quelque chose de complètement transparent.

  6. #6
    Rédacteur
    Avatar de marcha
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2003
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Points : 2 351
    Points
    2 351
    Par défaut
    Salut,

    Déjà un peu de théorie ici

    Du plus concret ici

    Sinon une petite recherche google :-)
    Si ton code fait plus d'une ligne, c'est que tu as mal choisi ton langage !

  7. #7
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par beeboo Voir le message
    Et puis un petit truc avec Firefox : Ctrl + F5 force le rechargement complet de la page.
    +1

    Par contre il me semble que c'est pareil pour les nav les plus courants (IE en tous cas) ...

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    530
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 530
    Points : 316
    Points
    316
    Par défaut
    Merci Marcha,

    Je suis allé jeter un premier coup d'œil aux liens que tu m'as envoyé.

    Le fichier htaccess permet de définir une durée de vie pour le cache, ce qui finalement n'est pas nécessaire quand les scripts ne changent plus.

    Ta première suggestion avec une variable GET qui peut être définie par la date de dernière modification du fichier me parait bien tant à court terme qu'à long terme en fait...

    il suffit (la par contre c'est peut-être vite dit) de faire une fonction (ou une classe ?) PHP qui écrit la variable de lastUpdate pour les fichier js utilisés par la page.

    Je n'en ai pas beaucoup par page puisque mes fichiers js regroupent mes fonctions spécifiques à chaque page.

    Merci en tous cas pour vos suggestions

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 18/12/2012, 08h24
  2. [CSS 3] Comment faire pour que mes li enfants n'héritent pas de o mon parent
    Par pierrot10 dans le forum Mise en page CSS
    Réponses: 0
    Dernier message: 03/06/2010, 00h24
  3. [MySQL] Comment faire pour que mes données soient sensibles à la casse
    Par Alexandrebox dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 04/04/2007, 11h29
  4. Comment faire pour que mes Cases à cocher restent "cochées"
    Par zeloutre dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 21/08/2006, 15h50
  5. CSS: comment faire pour que mes coins soit arrondi
    Par pierrot10 dans le forum Mise en page CSS
    Réponses: 6
    Dernier message: 16/02/2006, 12h08

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