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 :

Rafraîchir une page xhtml incluse dans une autre page


Sujet :

JavaScript

Vue hybride

johnlobs Rafraîchir une page xhtml... 24/01/2018, 19h49
johnlobs pour plus de precision 25/01/2018, 12h55
SpaceFrog un ajax ? un load() jquery ? 25/01/2018, 13h59
Beginner. Salut, Je ne m'y connais... 25/01/2018, 14h12
johnlobs Tout d'abord je tiens à vous... 25/01/2018, 14h32
johnlobs etat d'avancement 25/01/2018, 19h44
Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2012
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 170
    Par défaut Rafraîchir une page xhtml incluse dans une autre page
    Bonjour à tous !!

    j'ai un petit soucis et malgré une longue recherche je n'abouti à aucun résultat intéressant.

    Tout d’abord je souhaiterais signaler que cette discussion a été créée dans cette section car le javascript me semble être la solution la plus proche de ce que je veux,je reste cependant ouvert a toute éventuelle proposition.

    Je m'explique:

    Dans le cadre d'une application web (utilisant les techno jsf /spring/jpa....), toutes les pages incluent la Template principale qu'on appellera
    "template.xhtml".

    Cette page inclue elle même plusieurs pages dont la page qui m' interresse et qu'on appellera "notif.xhtml" et qui regroupe un ensemble de notification liées a l'utilisateur connecté bien sur.

    Les autres pages de l'application incluent toutes la fameuse template.xhtml car elle contient le menu , les notifications et bien d'autres choses commune à toute les pages.

    Mon soucis est de vouloir faire un rafraîchissement des notifications en temps réel,c'est à dire que lorsqu'une action est executée sur une page qui inclue la template, j'aimerais reloader uniquement les notifs et plus précisément notification.xhtml qui elle est incluse dans template.xhtml.

    j’espère avoir été clair jusqu’à présent!

    Au niveau du controlleur, j'utilise le code suivant pour recharger toute page mais c'est une solution qui ne me satisfait pas du tout car mes pages contiennent des filtres et plusieurs autres chose que je n'ai pas forcement envie de recharger et donc de perdre.

    Voici le code que j'utilise à la fin de mon action pour injecter du js :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RequestContext.getCurrentInstance().execute("location.reload(true)");
    Ceci recharge la page entière du serveur avec le "forceget" fixé à "true" chose qui me crée encore plus de problèmes car a la moindre action je perd la page et les données filtrées si la page contient une "datatable".

    l'histoire du rafraîchissement automatique avec intervalles figé dans le code html ne m' interresse pas car cela ne me règle en aucun cas mon problème puisque je veux rafraîchir les notifications si une action les affectant est exécutée et dans ce cas ne pas rafraîchir tout la page.

    Ma question est donc :

    Comment pourrais je rafraichir la page notif.xhtml qui elle dans son controlleur contient une fonction postconstruct qui me fait tout le travail concernant les notifs ce qui veut dire que si je la recharge ,les notifs seront automatiquement mises à jour.
    A ce jour et apres plusieurs tentatives je n'arrive pas à accéder a cette page dont l'url est inexistante puisqu'elle est contenue dans une autre page qui elle aussi est incluse dans ma page courante.

    je sais que c'est pas facile à expliquer mais j’espère avoir été un minimum clair et que j'aurais des réponses dans un premier temps et que celle ci seront un minimum claires.

    je vous remercie d'avance

  2. #2
    Membre expérimenté
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2012
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 170
    Par défaut pour plus de precision
    Bonjour,
    Dans mes pages :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <ui:composition xmlns="http://www.w3.org/1999/xhtml"
    	xmlns:ui="http://java.sun.com/jsf/facelets"
    	xmlns:h="http://java.sun.com/jsf/html"
    	xmlns:p="http://primefaces.org/ui"
    	xmlns:pe="http://primefaces.org/ui/extensions"
    	xmlns:sec="http://www.springframework.org/security/tags"
    	xmlns:f="http://java.sun.com/jsf/core"
    	 template="/WEB-INF/template.xhtml">
             ...................
    </ui composition>
    Dans template.xhtml

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <h:head>
    </h:head>
    <h:body>
    <ui:include src="notif.xhtml" />
    .........
    </h:body>
    comment est ce que je pourrais rafraichir uniquement notif.xhtml à partir d'un bouton dans ma page qui inclut template.xhtml
    je ne trouve pas grand chose dans les recherches sur les facelets

    je vous remercie d'avance

  3. #3
    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 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 658
    Billets dans le blog
    1
    Par défaut
    un ajax ? un load() jquery ?
    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 !

  4. #4
    Membre Expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 910
    Par défaut
    Salut,

    Je ne m'y connais pas dans ce domaine mais avec html et JS, ça me fait penser à ajax ou bien mettre dans la page principale une iframe dans laquelle on mettrait la page à recharger.

    Je ne sais pas si ce sont de bonnes idées je dis juste que ton message me fait penser à ça.

  5. #5
    Membre expérimenté
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2012
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 170
    Par défaut
    Tout d'abord je tiens à vous remercier pour le temps que vous consacrez pour lire et répondre aux message de tous les membres.

    La techno importe peu car le problème que j'ai rencontré ne concerne pas la méthode à utiliser pour rafraîchir la page mais plutôt un problème d'accès.
    je m'explique :

    lorsque je veux accéder depuis ma page aux éléments de template.xhtml puis à notif.xhtml pour la rafraîchir j'ai une erreur car il ne les reconnait pas meme en créant une div comme suit il ne reconnait pas la div

    code de template.xhtml:
    Code XHTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <h:body>
     
    	<div id="include" >
    		<ui:include src="notif.xhtml" />
     
    		<ui:include src="menu.xhtml" />
    	</div>

    code de mapage.xhtml:
    Code XHTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <ui:composition xmlns="http://www.w3.org/1999/xhtml"
    	xmlns:ui="http://java.sun.com/jsf/facelets"
    	xmlns:h="http://java.sun.com/jsf/html"
    	xmlns:p="http://primefaces.org/ui"
    	xmlns:pe="http://primefaces.org/ui/extensions"
    	xmlns:sec="http://www.springframework.org/security/tags"
    	xmlns:f="http://java.sun.com/jsf/core"
    	 template="/WEB-INF/template.xhtml">

    peu importe la méthode d’accès et le langage ,mon objectif est d'y accéder puis de reloader uniquement notif.xhtml

    J'ai aussi pense a poster dans la section facelets JSF (dans java web) car ca peut aussi concerner cette section car la question est assez globale

    En tout cas,en attendant vos reponses,je vous remercie pour vos conseils

  6. #6
    Membre expérimenté
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2012
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 170
    Par défaut etat d'avancement
    Bonjour ,

    Je sais que mon sujet est mal exprimé et manque de precision.
    A ce jour, je ne suis plus au même stade ; je m'explique:

    toute mon histoire d'include et de composition n'est plus d'actualité.En effet tous ces includes ne posent plus probleme car le code de la page incluse est injecté dans la page qui fait apel à template.xhtml.

    J'arrive à recuperer la div qui m'interresse et qui contient l'include grace à ce code javascript:

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    document.body.children[0]

    le soucis que j'ai actuellement est de pouvoir raffraichir uniquement cette div sans injecter de nouveau contenu (je veux uniquement la recharger avec son contenu )

    J'ai essayer ce code mais ca ne marche pas :

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    document.body.children[0].load(location.href+document.body.children[0])


    Si quelqu'un peut m'aider ce serait très sympas !

    merci d'avance!

  7. #7
    Membre Expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 910
    Par défaut
    Perso j'aimerais bien t'aider mais j'y connais rien à ce langage, c'est quoi ces "ui" ? Cela me fait penser à des iframe...

    Si c'était une image ou une iframe, je te suggérerais de modifier le source (l'attribut "src"), ce changement provoque un chargement mais comme tu veux recharger la même page il faudrait donner le même nom + ? + un nombre...

    Genre tu as src="notif.xhtml" tu le remplaces par src="notif.xhtml?1"Il faut que le nombre soit différent à chaque fois, pour produire un nombre différent on utilise parfois l'objet date et getTime...

Discussions similaires

  1. Réponses: 1
    Dernier message: 26/12/2010, 21h20
  2. Réponses: 9
    Dernier message: 13/03/2008, 01h34
  3. Ce qui est dans une table mais pas dans l'autre !
    Par youyoule dans le forum Requêtes
    Réponses: 4
    Dernier message: 30/12/2007, 12h57
  4. insertion dans une table puis update dans une autre table
    Par uptoditime dans le forum VBA Access
    Réponses: 5
    Dernier message: 10/10/2007, 18h08
  5. Recherche de valeur dans une feuille et affichage dans une autre
    Par Zebulon777 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 15/05/2007, 09h40

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