![Citation](https://forum.developpez.be/images/misc/quote_icon.png)
Envoyé par
johnlobs
Il va chercher le fichier dans le path de la page en cours. Même quand je lui indique que la page se trouve dans WEB-INF,il concatene WEB-INF/notif.xhtml à l'url de la page en cours donc erreur.
Peut-être qu’une petite révision sur les URL absolues et relatives pourrait t’être utile ![;)](https://www.developpez.net/forums/images/smilies/icon_wink.gif)
Je voulais trouver un cours à propos de ça sur Developpez.com, mais apparemment je cherche mal. Je te la fais courte :
![:arrow:](https://www.developpez.net/forums/images/smilies/icon_arrow.gif)
Une URL absolue commence par
/, où
/ est la racine de ton site.
Depuis n’importe quelle page, l’URL
/a/b/page.html sera toujours la même.
![:arrow:](https://www.developpez.net/forums/images/smilies/icon_arrow.gif)
Une URL relative, c’est l’inverse : elle ne commence
pas par
/, et sera relative au dossier contenant la page actuelle.
Par exemple, si ta page est
/a/page.html et que tu appelles l’URL
d/autrepage.html, l’adresse réelle sera
/a/d/autrepage.html.
Un moyen simple de voir en quoi se résoud une adresse, relative ou absolue, c’est d’utiliser un lien dans la console F12 du navigateur (le panneau console, cette fois-ci) :
1 2 3
| var lien = document.createElement("a");
lien.href = "chemin/quelconque";
console.log(lien.href); |
La propriété href des liens est un peu « magique » : quand tu y accèdes en lecture, elle est automatiquement résolue en URL complète. Ça te permet de bien voir le résultat.
![Citation](https://forum.developpez.be/images/misc/quote_icon.png)
Envoyé par
johnlobs
Ce qui m'a poussé a vouloir charger uniquement la div mais autre problème, la div se charge bien mais il ne considère pas la balise de fin de div et va recharger tout le code qui vient après et donc toute la page.
De plus lors du chargement de la div , je perd les fonctionnalité des notifs qui devient une simple icone .
Quand tu invoques .load(), le contenu de l’élément HTML est écrasé comme si tu avais utilisé innerHTML. Voilà ce qui se passe en détails :
- L’élément est d’abord vidé ; tous ses enfants sont supprimés, et ainsi toutes les références JavaScript (ids, évènements attachés, etc.) sont perdues. Ça explique sans doute ta perte de fonctionnalité.
- La chaîne reçue depuis le serveur est analysée comme code HTML ; un arbre DOM est construit.
- Ce nouvel arbre DOM est inséré dans l’élément réceptacle.
On appele parfois corruption du DOM le fait qu’on perde des références JS quand un bout du DOM est écrasé.
Je ne connais pas la techno serveur JSF, mais je peux dire au moins une chose : si elle repose sur l’envoi de scripts à exécuter côté client, elle ne s’articulera pas bien avec .load(). Il vaut mieux regarder dans les docs de JSF pour savoir quoi faire.
Autrement, fais générer du HTML classique à ton serveur, et code la partie client à la main. Ça sera peut-être long, mais si la techno serveur est insuffisante, c’est sans doute la seule solution.
Partager