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

JSF Java Discussion :

Comment forcer le rafraîchissement d'une image


Sujet :

JSF Java

  1. #1
    Membre à l'essai
    Inscrit en
    Octobre 2010
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 19
    Points : 16
    Points
    16
    Par défaut Comment forcer le rafraîchissement d'une image
    Bonjour,

    Je voudrais afficher une image depuis un fichier HTML, dans une application web utilisant JSF 2.0.
    Le problème est que l'affichage de l'image est toujours statistique, même après ré-exécution de l'application.

    J'ai essayé d'ajouter un nombre aléatoire à la fin du nom de l'image, comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        public String getImageId () {
            String imageId = ""; 
            int nb = (int)Math.random(); 
            imageId = "?id="+Integer.toString(nb);
            return imageId; 
        }
    Puis, j'affiche dans ma page jsf l'image correspondante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <h:graphicImage value="/images/Report.html_files/img_0_0_0#{MonBean.imageId}" cacheable="false" />
    Mais le problème persiste encore, avez vous des idées ?

    Merci

  2. #2
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2010
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2010
    Messages : 38
    Points : 42
    Points
    42
    Par défaut
    si je te comprend bien, tu besoin de mettre une action pour faire la mise à jour de l'image ... par exemple l'action va appeler une méthode à chaque rafraichissement de la page ( F5 ) .

  3. #3
    Membre à l'essai
    Inscrit en
    Octobre 2010
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 19
    Points : 16
    Points
    16
    Par défaut
    Merci, pour votre intérêt, mais ce n'est pas ça le problème.
    quand j'appelle la page concernée, même lorsque je fais F5, l'image reste la même, alors que moi à chaque appelle de la page je généré une nouvelle image. Mais le navigateur garde toujours en mémoire des images anciennes.

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Septembre 2011
    Messages : 10
    Points : 12
    Points
    12
    Par défaut
    C'est surement un problème de cache. Ton navigateur, pour aller plus vite va chercher l'image dans son cache. Il y a une instruction en html à mettre au début de ta page pour éviter cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <META http-equiv="Cache-Control" content="no-cache"> 
    <META http-equiv="Pragma" content="no-cache"> 
    <META http-equiv="Expires" content="0">
    Essaye de mettre ça entre tes balises h:head.

  5. #5
    Membre à l'essai
    Inscrit en
    Octobre 2010
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 19
    Points : 16
    Points
    16
    Par défaut
    Merci pour votre réponse, mais moi j'utilise Jsf2.0 donc je ne peux pas ajouter des balises <META> dans mes pages

  6. #6
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Points : 5 059
    Points
    5 059
    Par défaut
    le bean est dans quel scope?

    je pense qu'il serait mieux de faire le calcul dans une autre méthode, le getter est appelé plusieurs fois pendant une seule requete.

    sio tu affiche le contenu de imageId?

  7. #7
    Membre à l'essai
    Inscrit en
    Octobre 2010
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 19
    Points : 16
    Points
    16
    Par défaut
    Le bean est dans le scope session.
    La méthode getImageId est une alternative que j'ai trouvé dans un forum et je l'ai essayé afin d'ajouter un nombre aléatoire à la fin du nom de l'image, pour que l'image ne soit pas statique.
    Mais c'est ça n'a pas marché, je crois qu'il vaut mieux voir une autre alternative.

  8. #8
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Points : 5 059
    Points
    5 059
    Par défaut
    ce que tu peux faire, calculer le path de l 'image dans une fonction que tu dois appelé lors de la création du bean (request)

    le getter doit juste faire son rôle..retourner une valeur.

  9. #9
    Membre à l'essai
    Inscrit en
    Octobre 2010
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 19
    Points : 16
    Points
    16
    Par défaut
    J'ai déjà essayé ça, dans une méthode je retourne le path de l'image, mais le résultat est le même

Discussions similaires

  1. [PHP-JS] Forcer le téléchargement d'une image JPG
    Par Amnesiak dans le forum Langage
    Réponses: 5
    Dernier message: 09/11/2006, 23h50
  2. Réponses: 1
    Dernier message: 02/08/2005, 16h05
  3. [Graphique] Comment compter les couleurs d'une image ?
    Par yoghisan dans le forum API, COM et SDKs
    Réponses: 27
    Dernier message: 16/02/2005, 18h17
  4. Comment mettre un label sur une image
    Par dug dans le forum MFC
    Réponses: 3
    Dernier message: 07/04/2004, 10h40
  5. Comment copier un bitmap d'une image à une autre?
    Par gord's dans le forum Langage
    Réponses: 2
    Dernier message: 19/08/2003, 13h07

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