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 :

Intranet extranet et cache navigateur


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mars 2012
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Orne (Basse Normandie)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Mars 2012
    Messages : 22
    Points : 8
    Points
    8
    Par défaut Intranet extranet et cache navigateur
    Bonjour a tous,

    Je vous expose la situation.
    J'ai réalisé une application extranet avec symfony, qui tourne sur un serveur web debian.
    Le contenu de mon extranet est alimenté en continu par la publication de fichier excel convertie en htm.
    Se qui a pour but d'avoir a chaque sauvegarde de l'utilisateur sur excel, un fichier htm a jour sur mon extranet, seulement le cache du navigateur client met un peu le bordel car il ne récupère pas automatiquement la dernière version a jour sur le serveur il doit ce servir du cache.

    J'ai essayer de rajouter un random a la fin du lien pour qui crée un nouveau fichier a chaque fois mais cela ne fonctionne pas.

    Voici le petit code JS qui va avec mon explication.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $('#example tbody').on( 'click', 'button', function () {
                var data = table.row( $(this).parents('tr') ).data();
                myRand=parseInt(Math.random()*99999999);  // cache buster
                var myWindow = window.open("http://monserveur/monemplacement/"+data[4]+ "?rand=" + myRand, "myWindow");   // Opens a new window
                 myWindow.open();
            } );
    Je sais qu'un simple ctrl + F5 suffit mais ce n'est pas une solution automatique. Une configuration sur les postes clients ne m’intéresse pas non plus.

    J’espère avoir été clair dans mon explication, et être tombé au bon endroit.
    Merci a tous ceux qui peuvent m'aider.

    Cordialement,

  2. #2
    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 642
    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 642
    Points : 66 668
    Points
    66 668
    Billets dans le blog
    1
    Par défaut
    a priori le param random en paramètre get devrait bien contourner le cache ...
    as tu bien constaté la modification de l'url dans ta popup ?

    la popup est elle déja ouverte ?
    SI c'est le cas peut être qu'un test sur son existence et un refresh feront l'affaire?

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mars 2012
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Orne (Basse Normandie)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Mars 2012
    Messages : 22
    Points : 8
    Points
    8
    Par défaut
    merci de ta reponse,

    le nouvel onglet s'ouvre a la fin de la fonction JS.
    il s'ouvre avec la version qu'il a deja ouverte une fois et si on refresh il reprend la nouvelle meme si le random ne change pas...
    Je dois eviter le refresh de la page.
    A chaque ouverture de l'onglet le fichier qui s'affiche doit etre celui a jour sur le serveur...

    Et oui le random fonctionne il me crée bien un num a la fin du lien :
    http://monserveur/monemplacement/Ins...?rand=40694599

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mars 2012
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Orne (Basse Normandie)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Mars 2012
    Messages : 22
    Points : 8
    Points
    8
    Par défaut
    Eh non apparemment un simple f5 ne suffit pas a afficher la version du fichier sur le serveur il faut effacer le cache (ctrl+f5 sur chrome) pour que se soit bon...

    Et la sans rien modifier ça fonctionne...
    C'est aléatoire. Je comprend pas

  5. #5
    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 642
    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 642
    Points : 66 668
    Points
    66 668
    Billets dans le blog
    1
    Par défaut
    quand je parle de refresh, c'est le refresh du popup ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    myWindow.location.reload
    Sinon au lieu d'un popup window.open, tu pourrais passer par un popin que tu renseignes au moyen d'un .load() Jquery du coup pas de souci de gestion de fenêtre externe

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mars 2012
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Orne (Basse Normandie)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Mars 2012
    Messages : 22
    Points : 8
    Points
    8
    Par défaut
    Je teste ça tout de suite je te redis, enfin une nouvelle piste a creuser merci a toi.

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mars 2012
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Orne (Basse Normandie)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Mars 2012
    Messages : 22
    Points : 8
    Points
    8
    Par défaut
    C'est compliqué pour moi et je suis pas sur de pouvoir afficher correctement un tableur htm dans une popin. Meme si c'est plus joli que l'ouverture d'un nouvel onglet.

    Aurais tu une autre piste a creusé pour moi ?

    je pourrais par exemple modifier le <head> du fichier .htm d'excel pour y ajouter des <meta> qui gère le cache ?
    Mais comment le faire dynamiquement par le code ?

    Je sais vraiment pas comment faire pour éviter le cache du navigateur pour ces fichiers la.

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mars 2012
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Orne (Basse Normandie)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Mars 2012
    Messages : 22
    Points : 8
    Points
    8
    Par défaut
    sans rien modifier le fichier ce met a jour tout seul au bout d'un certain temps il faudrait que ce soit instantané

  9. #9
    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 642
    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 642
    Points : 66 668
    Points
    66 668
    Billets dans le blog
    1
    Par défaut
    dans un popup ou un popin c'est pareil ...
    avec jquery il suffit de mettre un div sur ta page
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <div id="#popin"></div>
    et de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $('#popin').load('url?rand='+ myRand);
    et de gérer le display de ton div ..

  10. #10
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mars 2012
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Orne (Basse Normandie)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Mars 2012
    Messages : 22
    Points : 8
    Points
    8
    Par défaut
    Je test ça lundi merci a toi.

  11. #11
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 094
    Points : 6 755
    Points
    6 755
    Par défaut
    Pour moi le problème se réglerait plutôt au niveau de la config serveur. Généralement, les .htm sont considérés comme des fichiers statiques par les serveurs, et du coup ces derniers envoient des directives de cache avec. Si tu génères le .htm par script, tu dois avoir moyen d’envoyer tes propres headers pour annuler ces directives ; sinon, c’est possible avec un .htaccess si ton serveur est Apache (je ne connais pas les alternatives pour Nginx et Node).

  12. #12
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mars 2012
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Orne (Basse Normandie)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Mars 2012
    Messages : 22
    Points : 8
    Points
    8
    Par défaut
    bonjour a toi,

    Merci de ta réponse.
    Je m’étais jamais intéressé au .htaccess mais dans le fichier j'ai déjà cette config :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <filesMatch "\\.(html|htm)$">
    Header unset Cache-Control
    </filesMatch>
    Ça devrais fonctionner ?
    Pourquoi je n'ai pas systématiquement la version serveur.

    Peut être que pour vous éclairer un peu, je dois vous dire que mon serveur web va chercher les fichiers sur un Windows Server via un lien Samba !

  13. #13
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mars 2012
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Orne (Basse Normandie)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Mars 2012
    Messages : 22
    Points : 8
    Points
    8
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <filesMatch "\.(html|htm)$">
      FileETag None
      <ifModule mod_headers.c>
         Header unset ETag
         Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
         Header set Pragma "no-cache"
         Header set Expires "Wed, 11 Jan 1984 05:00:00 GMT"
      </ifModule>
    </filesMatch>
    Paramétré comme cela c'est déjà mieu. A voir dans le temps

    Plus qu'a effacer le cache de tous les navigateurs et tous les utilisateurs et après ça pourrait être fonctionnel.
    Par defaut un navigateur garde le cache combien de temps ?

  14. #14
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 094
    Points : 6 755
    Points
    6 755
    Par défaut
    C’est variable, ça dépend des préférences de l’utilisateur. Mais si tu continues pendant quelques temps à ajouter un cache buster côté client, tu devrais t’assurer qu’une bonne majorité de tes utilisateurs ont une version à jour du fichier. En effet, s’il fonctionne correctement, le cache buster assurera que le client récupère un fichier qui a les nouvelles directives de cache, ce qui te permettra de retirer le cache buster par la suite. À toi de juger pendant combien de temps le laisser.

    Ta précision à propos de Samba est intéressante. Je ne connais pas bien cette techno, mais après une petite recherche il semble qu’il existe en effet des problèmes de cache, même si j’ai eu l’impression que ça arrive plutôt quand Windows est du côté client. En tout cas, ça reste une piste à explorer si le reste ne marche pas.

  15. #15
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mars 2012
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Orne (Basse Normandie)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Mars 2012
    Messages : 22
    Points : 8
    Points
    8
    Par défaut
    C'est super merci a toi Watilin et merci a toi aussi SpaceFrog.

    Je vais voir pour le cache coté client mais il semblerais que sur mon pc ce soit ok a voir.

    Et pour SAMBA si sa fonctionne pas comme cela je me pencherais dessus.

    Merci encore grace a vous sujet classé comme résolu

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

Discussions similaires

  1. Loader Flash pour le cache Navigateur?
    Par Giansolo dans le forum Flash
    Réponses: 5
    Dernier message: 16/10/2009, 17h06
  2. Déconnexion et Cache navigateur
    Par pierrot31 dans le forum Langage
    Réponses: 1
    Dernier message: 16/04/2007, 15h12
  3. Reseau intranet/extranet
    Par Chronax dans le forum Développement
    Réponses: 3
    Dernier message: 03/05/2006, 13h00
  4. désactiver cache navigateur pour pages JSP/Tomcat 5.5
    Par iubito dans le forum Tomcat et TomEE
    Réponses: 3
    Dernier message: 24/03/2006, 17h50
  5. chargement pages php + cache navigateur
    Par grinder59 dans le forum Langage
    Réponses: 6
    Dernier message: 06/10/2005, 14h44

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