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 :

chargement systématique pdf


Sujet :

JavaScript

  1. #1
    Membre régulier Avatar de LeGnome12
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2008
    Messages : 98
    Points : 109
    Points
    109
    Par défaut chargement systématique pdf
    Bonjour à tous,

    Pour résumé est faire simple, je veux cliquer sur un bouton de ma page et que cela m'ouvre une page pdf. Mais je veux que cette page soit systématiquement chargé par le navigateur (que celui-ci n'utilise pas le cache).

    Bon je développe pour être plus clair :
    Un j'ai une fonction javascript existante et simpliste :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    function PopUp(Link, Width, Height, Align, VAlign, Scroll, Resize) {
    	if(Align)	Align=Align.toUpperCase();
    	if(VAlign)	VAlign=VAlign.toUpperCase();
    	switch(Align) {
    		case "LEFT":	Left=0;	break;
    		case "RIGHT":	Left=Math.round(screen.width-Width);	break;
    		case "CENTER":
    		default:		Left=Math.round((screen.width-Width)/2);
    	}
    	switch(VAlign) {
    		case "TOP":		  Top=0;	break;
    		case "BOTTOM":	Top=Math.round(screen.height-Height);	break;
    		case "CENTER":
    		case "MIDDLE":
    		default:		Top=Math.round((screen.height-Height)/2);
    	}
    	window.open(Link, '', 'toolbar=no, left='+Left+', top='+Top+', scrollbars='+Scroll+', resizable='+Resize+',  width='+Width+', height='+Height);
    }
    Puis j'ai tout un code qui permet à l'utilisateur de faire l'upload d'un document PDF pour un contact. Le pdf est alors enregistré sur le serveur avec comme nom l'id du contact auquel il est rattaché.

    Si l'utilisateur désire changer le pdf d'un contact, cela se fait sans problème et le nouveau pdf écrase l'ancien sur le serveur.

    Mais voilà, j'ai, sur l'interface utilisateur un bouton qui ouvre un popup :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    hreaf = "javascript:PopUp('<?php echo $this->_plan . "?tempo=" . mktime(); ?>', 700, 280, '', 'AUTO', '1');
    Mais une fois la popup ouverte pour un contact, le pdf s'enregistre dans le cache du navigateur. Si l'utilisateur revient avec le même chemin pour ouvrir un pdf qui porte le même, le navigateur prend les information depuis le cache. Et je ne veux PAS ! Parce que, si le pdf a changé, l'utilisateur ne le verra pas à cause de son navigateur.
    Comme vous pouvez le voi, j'ai ajouté un tempon pour contourner le problème. Mais l'un de vous a une idée interressante, je suis prenneu.

    LeGnome

  2. #2
    Membre chevronné

    Homme Profil pro
    Ingénieur Hospitalier
    Inscrit en
    Juillet 2004
    Messages
    993
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Hospitalier
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 993
    Points : 1 768
    Points
    1 768
    Billets dans le blog
    1
    Par défaut
    Salut sa rien avoir avec js c'est plutôt un problème de cache navigateur donc il te faut soit en PHP En haut de ta page avant tout ouput "echo, print..."

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <?PHP
    header( 'Expires: Sat, 26 Jul 1997 05:00:00 GMT' );
    header( 'Last-Modified: ' . gmdate( 'D, d M Y H:i:s' ) . ' GMT' );
    header( 'Cache-Control: no-store, no-cache, must-revalidate' );
    header( 'Cache-Control: post-check=0, pre-check=0', false );
    header( 'Pragma: no-cache' );
     
    ?>
    Je sais pas si tu as déjà testé mais c'est la meilleur des piste malgré ta bonne méthode avec le mktime au niveau de l'appel de l'url.
    Sinon fait gaffe a memcached ou autre cache côté php voir une session persistante au niveau du nommage de fichier...

  3. #3
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonjour,

    à la place du mktime(), utilise simplement la date javascript du genre "tempo="+(new Date()).

    A+.

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

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    comme le dit headmax il faut que ton serveur envoie les entêtes adéquat pour que le navigateur ni les proxy ne le mettent en cache

    suivant le serveur utilisé il faut aussi indiquer au serveur de ne pas renvoyer un 301 no change lorsque le script est invoqué plusieurs fois successives.


    A+JYT

  5. #5
    Membre régulier Avatar de LeGnome12
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2008
    Messages : 98
    Points : 109
    Points
    109
    Par défaut
    Merci à tous pour vos réponses.

    Je ne connaissais pas les fonctions php pour éviter le problème de cache.
    Je pense avoir là l'une des meilleures solutions, mon collègue, qui a rencontré le même problème, n'a pas cherché.
    Résultat : lorsque l'on installe un poste dans la société (pcq c'est sur un intranet) il me demande de paramétrer ie en "chargement systématique de la page : pas d'utilisation de cache"...

    Il y a ceux qui ne se posent pas de questions et les autres.

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

Discussions similaires

  1. [ZF 1.11] Chargement de pdf avec zend pdf
    Par spiderboy77 dans le forum Autres composants
    Réponses: 3
    Dernier message: 08/06/2014, 20h54
  2. Chargement fichier pdf sur word
    Par jacky87 dans le forum Autres Logiciels
    Réponses: 2
    Dernier message: 25/10/2010, 10h53
  3. Chargement de PDF dans Swing
    Par Bully dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 18/07/2007, 15h10
  4. Détecter le chargement d'un PDF
    Par psychomatt dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 17/07/2007, 14h36
  5. chargement et impression d'un document pdf
    Par waldo2188 dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 15/02/2005, 11h28

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