Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Inhiber le rechargement d'une iframe en cas de changement de parent ?

6 réponses
Avatar
François Girault
Bonjour,

Dans une application javascript/dhtml, je suis amené à déplacer un noeud
contenant une iframe au sein du dom.

removeChild(), appendChild(), tout se passe bien : mon noeud arrive à
l'endroit escompté, mais que le contenu de l'iframe se recharge à chaque
ajout au dom, ce qui est inutile chez moi ...

J'ai cherché, mais je n'ai pas trouvé de référence à ce sujet (un
événement où il faudrait retourner falser pour éviter ça ?).

Je suis vraiment obligé d'utiliser cette iframe, qui met beaucoup de
temps à se charger, d'où mon souci.

Au pire du pire, j'envisage la gorettisation suivante : passer l'iframe
en positionnement absolu, insérer un noeud vide à l'endroit où elle
devrait être et positionner / dimensionner l'iframe comme il faut. Mais
bon, j'aimerai éviter ça ...

Merci si vous avez des expériences là dessus.

--
FG

6 réponses

Avatar
Pierre Goiffon
François Girault wrote:
Dans une application javascript/dhtml, je suis amené à déplacer un noeud
contenant une iframe au sein du dom.

removeChild(), appendChild(), tout se passe bien : mon noeud arrive à
l'endroit escompté, mais que le contenu de l'iframe se recharge à chaque
ajout au dom, ce qui est inutile chez moi ...

J'ai cherché, mais je n'ai pas trouvé de référence à ce sujet (un
événement où il faudrait retourner falser pour éviter ça ?).

Je suis vraiment obligé d'utiliser cette iframe, qui met beaucoup de
temps à se charger, d'où mon souci.


Il me parait normal que si l'on déplace l'iFrame on recharge son
contenu... Cependant il y a peut être moyen de moyenner en faisant en
sorte que la page chargée dans l'iFrame soit en cache ?

Avatar
ASM
Bonjour,

Dans une application javascript/dhtml, je suis amené à déplacer un noeud
contenant une iframe au sein du dom.

removeChild(), appendChild(), tout se passe bien : mon noeud arrive à
l'endroit escompté, mais que le contenu de l'iframe se recharge à chaque
ajout au dom, ce qui est inutile chez moi ...


il faut savoir que pour déplacer tu n'as pas besoin de removeChild
l'appendChild de l'iframe au bon endroit suffit.

Avec un peu de chance ça ne rechargera pas ?


--
Stephane Moriaux et son (moins) vieux Mac déjà dépassé

Avatar
François Girault
Bonjour,

Dans une application javascript/dhtml, je suis amené à déplacer un noeud
contenant une iframe au sein du dom.

removeChild(), appendChild(), tout se passe bien : mon noeud arrive à
l'endroit escompté, mais que le contenu de l'iframe se recharge à chaque
ajout au dom, ce qui est inutile chez moi ...


il faut savoir que pour déplacer tu n'as pas besoin de removeChild
l'appendChild de l'iframe au bon endroit suffit.



Effectivement, pas besoin du removeChild, merci de cette précision.

Avec un peu de chance ça ne rechargera pas ?



Arf, la chance n'est pas avec moi sur ce coup là.

Merci.

--
FG


Avatar
François Girault
Il me parait normal que si l'on déplace l'iFrame on recharge son
contenu... Cependant il y a peut être moyen de moyenner en faisant en
sorte que la page chargée dans l'iFrame soit en cache ?


Normal, je ne sais pas : je n'ai pas trouvé de doc de référence
expliquant ce comportement au w3c (que j'estime garant de la normalité
relative des technos web).

Moyenner pour que la source soit en cache ne change pas mon problème :
le contenu de l'iframe est majoritairement du javascript. Que les
fichiers js soient en cache est une chose (ils y sont), c'est d'éviter
la ré-exécution de ces scripts qui m'intéresse.

Merci de votre proposition.

--
FG

Avatar
ASM
c'est d'éviter
la ré-exécution de ces scripts qui m'intéresse.


alorsse, si tu y as accès, ils peuvent causer au parent,
et on on peut y mettre une mémorisation (dans le JS de la page mère)
afin d'éviter de répeter l'exécution.
(savoir si à défaut de ré-exécution la page servie dans l'iframe est
correcte ?)

M'enfin, et comme tu disais, avant le JS 1.5
on arrivait à déplacer des trucs dans la page affichée.

--
Stephane Moriaux et son (moins) vieux Mac déjà dépassé

Avatar
François Girault
c'est d'éviter la ré-exécution de ces scripts qui m'intéresse.


alorsse, si tu y as accès, ils peuvent causer au parent,
et on on peut y mettre une mémorisation (dans le JS de la page mère)
afin d'éviter de répeter l'exécution.
(savoir si à défaut de ré-exécution la page servie dans l'iframe est
correcte ?)



La mémorisation en question promet d'être un terrible nid à bug, puisque
c'est un composant tiers qui est dedans, avec le plein de variables que
je ne connais pas exhaustivement, etc ...

Je préfère partir du fait que je ne maîtrise pas le contenu de l'iframe.
Je vais finir par bricoler une routine de positionnement absolu ; ça
sera sport, mais ça a une chance de marcher (sur un malentendu ;) ).

M'enfin, et comme tu disais, avant le JS 1.5
on arrivait à déplacer des trucs dans la page affichée.



Hum j'ai dit ça moi ?

Merci à tous pour vos idées.

--
FG

Demain j'arrête, comme hier. Et après demain aussi.