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 prendre en compte une mise à jour


Sujet :

JavaScript

  1. #1
    Membre averti

    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 464
    Points : 332
    Points
    332
    Par défaut comment prendre en compte une mise à jour
    Bonjour,

    J'utilise un fichier javascript pour éditer un menu. Lors d'une mise à jour, je me suis aperçu que le navigateur utilisait une version ancienne de ce fichier qui était en cache internet. Le résultat était donc très différent de celui attendu.
    Ma question est donc simple :
    Comment forcer le navigateur à aller chercher la nouvelle version du fichier javascript ?
    J'ai bien vu la méthode proposée par SpaceFrog
    (http://javascript.developpez.com/faq...#navig.nocache)
    mais je n'ai pas compris.

    Merci.
    C'est en respectant les autres que l'on se fait respecter.

  2. #2
    Membre éclairé
    Profil pro
    Assistant recherche bioinformatique
    Inscrit en
    Novembre 2007
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant recherche bioinformatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 877
    Points : 835
    Points
    835
    Par défaut
    j'ai pas compris.
    Tu cherches a charger un nouveau fichier de script dans une page deja affichée, ou bien tu veux que au rechargement de la meme page, le visiteur ai acces a un nouveau de script?
    Z.

  3. #3
    Membre averti

    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 464
    Points : 332
    Points
    332
    Par défaut recharger un nouveau script
    J'utilise un script pour créer un menu dans une page.
    Ce menu évolue dans le temps (tous les six mois environ).
    Il se compose d'un fichier htm qui fait appel à un fichier javascript
    Tout à l'heure j'ai fait une mise à jour.
    En local ça marchait bien. J'ai chargé les nouveaux fichiers sur mon site. L'affichage du menu prenait en compte le nouveau fichier (htm) et l'ancien fichier (js) : le résultat n'était pas celui attendu.
    Il a fallu que je vide le cache internet de mon navigateur (Mozilla Firefox) pour que le nouveau fichier javascript soit pris en compte.
    J'ai peur que les visiteurs aient la même mésaventure et s'imaginent qu'il y a un bug.
    Merci.
    C'est en respectant les autres que l'on se fait respecter.

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 634
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 634
    Points : 66 650
    Points
    66 650
    Billets dans le blog
    1
    Par défaut
    soit avec des balises meta no-cache ... mais pas sur que cela agisse sur des scripts externes

    soit en mettant un timestamp dans le src de ton lien

    sur le onload de ta page :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <script type='text/javascript'>
    function foo(){
    var ScriptLinks=document.getElementsByTagName('script');
    for(i=0;ScriptLinks[i];i++){
    if (ScriptLinks[i].src){ScriptLinks[i].src+="?"+new Date()}
    }
    }
    </script>
    </head>
     
    <body onload="foo()">
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Membre averti

    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 464
    Points : 332
    Points
    332
    Par défaut
    Donc si je comprends bien, je rajoute un paramètre (la date) à chaque balise script de mon document. Ce paramètre n'est pas utilisé mais oblige le navigateur à recharger le fichier de script.
    Cependant l'utilisateur utilise lors de sa visite de nombreuse fois ce script pour un menu déroulant et celui-ci ne change qu'une fois tous les six mois environ. Cela ne risque-t'il pas de ralentir beaucoup la navigation ?
    N'est-il pas possible qu'à l'ouverture du document principal on puisse vérifier si une nouvelle version des documents existent et recharger ces nouvelles versions ?

    Je pensais sinon modifier le nom de mon fichier script pour qu'il intègre un numéro de version. Ainsi tant que l'utilisateur a en cache une ancienne version du site, elle reste fonctionnelle. Dés qu'il recharge la nouvelle version, les fichiers de script sont nécessairement distincts.

    Question subsidiaire : quelle est la politique de cache des différents navigateurs ?
    C'est en respectant les autres que l'on se fait respecter.

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 634
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 634
    Points : 66 650
    Points
    66 650
    Billets dans le blog
    1
    Par défaut
    Oui le fait d'ajouter un paramètre oblige le navigateur à retourner à la source.

    Changer le nom du script est une possibilité mais t'oblige à changer la page à chaque fois, puisque tu devras changer le non du fichier dans le src de la balise

    Pour ce qui est de ralentir la navigation ... il fait quelle taille ton fichier script ??
    A mon avis ce sera peanuts.


    En ce qui concerne la vérification d'une nouvelle version c'est réalisable mais pas en javascript, il te faudrait du php en amont pour lister un repertoire, parser le nom de fichiers contenant le nr de version, et du coup rediger avec php ta balise script src ...

    Une dernière bidouille qui me vient à l'esprit serait d'avoir un fichier js externe avec le dernier nr de version...

    et du coup un script qui vient modifier le src en y ajoutant ce nombre à la fin

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .src='monfichierscript'+vers+'.js'
    le rechargement ne sera peut être pas systématique
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  7. #7
    Membre averti

    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 464
    Points : 332
    Points
    332
    Par défaut
    Il s'agit d'un script permettant de dérouler un sous-menu.

    J'ai essayé de mettre le script en pièce jointe mais il est très lent à répondre. Je ne sais pas si ça a marché
    la taille est de 15ko

    On peut voir la réalisation sur ce site

    http://histoiremondiale.free.fr

    Sinon je fais déjà du php et j'ai regardé cela
    http://www.wikini.net/wakka.php?wiki...veauApplicatif

    Je vais essayé ta méthode.
    C'est en respectant les autres que l'on se fait respecter.

  8. #8
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 634
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 634
    Points : 66 650
    Points
    66 650
    Billets dans le blog
    1
    Par défaut
    perso avec 15Ko je ne m'embeterais pas à faire autre chose qu'un timestamp ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  9. #9
    Membre averti

    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 464
    Points : 332
    Points
    332
    Par défaut
    Voici ce que j'ai mis

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN'>
    <html>
    <head>
    <title>Table des matières du programme HISTOIRE</title>
    <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'>
    <meta http-equiv='Content-Style-Type' content='text/css'>
    <style type='text/css'>
    </style>
    <script language="JavaScript" type="text/javascript" src="javascript/sommaire.js ?" + new Date()>
    </script>
    Est-ce correct ?

    Je vais mettre en ligne en modifiant mon sommaire.js et je regarde.
    C'est en respectant les autres que l'on se fait respecter.

  10. #10
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 634
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 634
    Points : 66 650
    Points
    66 650
    Billets dans le blog
    1
    Par défaut
    non je ne pense pas que ton new date soit interprété dans le htmltag (balise)

    Je t'ai donné le code un peu plus haut, il va falloir lancer une fonction sur le onload de la page ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  11. #11
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    J'utilise un script pour créer un menu dans une page.
    Ce menu évolue dans le temps (tous les six mois environ).
    Un nouveau fichier à intégrer dans une page tous les six mois... autant changer le nom du fichier à chaque mise à jour...
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  12. #12
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 634
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 634
    Points : 66 650
    Points
    66 650
    Billets dans le blog
    1
    Par défaut
    pour 15Ko ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  13. #13
    Membre averti

    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 464
    Points : 332
    Points
    332
    Par défaut
    Je viens de tester un certain nombre de choses et aujourd'hui et ... miracle les modifications sont prises en compte quasi instantanément. Y compris avec exactement le même genre de modifications qu'hier, c'est à dire sans utiliser la méthode de SpaceFrog (ajout d'un paramètre), ni celle de Bovino (changer le nom du fichier).
    Il m'est donc difficile de tester si l'une ou l'autre des méthodes résoud le problème d'hier soir.

    Encore un mystère de l'informatique.
    C'est en respectant les autres que l'on se fait respecter.

  14. #14
    Membre averti

    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 464
    Points : 332
    Points
    332
    Par défaut
    Je vais laisser tomber pour l'instant.

    Merci en tout cas de vous être intéressé au problème.

    P. HENRIO
    C'est en respectant les autres que l'on se fait respecter.

  15. #15
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 634
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 634
    Points : 66 650
    Points
    66 650
    Billets dans le blog
    1
    Par défaut
    le web est parfois capricieux ...
    les raisons de vidange de cache à différents niveaux sont obscures ???
    entre le navigateur, les proxys les hébergeurs ...

    Si cela n'a pas un caractère d'importance majeur, tu peux en effet te reposer sur le bon vouloir de la mise à jour automatique ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

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

Discussions similaires

  1. Comment faire une mise à jour ?
    Par Cvbdev dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 13/08/2007, 17h39
  2. Réponses: 7
    Dernier message: 11/04/2007, 15h21
  3. Comment programmer une mise à jour ?
    Par qnop dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 15/03/2006, 17h33
  4. [C#][ MSI] Comment effectuer une mise à jour d'application ?
    Par th3r1ddl3r dans le forum Windows Forms
    Réponses: 6
    Dernier message: 15/12/2005, 11h09

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