Salut,
Je voudrais savoir comment supprimer de la mémoire :
1) un élément créé comme ceci :
mais qui n'a pas été inséré dans le document à l'aide de :
2) un élément retiré du document :
Par exemple dans la fonction ci-dessous...
Si une erreur survient pendant la création de la balise object, ses éventuels noeuds enfants sont retirés de l'arbre DOM.
Mais ils demeurent en mémoire.
J'ai essayé ceci...
Mais je ne connais pas le moyen de vérifier si la place occupée par chaque élément est effectivement libérée.
Modifié par Eric2A (15 Aug 2010 - 19:51)
Je voudrais savoir comment supprimer de la mémoire :
1) un élément créé comme ceci :
element = document.createElement('object');
mais qui n'a pas été inséré dans le document à l'aide de :
parent.appendChild(element);
// ou
parent.insertBefore(element,autre);
// ou
parent.replaceChild(element,ancien);
2) un élément retiré du document :
old = element.removeChild(node)
Par exemple dans la fonction ci-dessous...
function createSWF(url,width,height){
var swfObj,Param;
try{
swfObj=document.createElement('object');
swfObj.setAttribute('type','application/x-shockwave-flash');
swfObj.setAttribute('data',url);
swfObj.setAttribute('width',width);
swfObj.setAttribute('height',height);
Param=document.createElement('param');
Param.setAttribute('name','movie');
Param.setAttribute('value',url);
swfObj.appendChild(Param);
/* Param=document.createElement('param');
* ...
* swfObj.appendChild(Param);
*/
return swfObj;
}catch(e){
try{
if(swfObj){
while(swfObj.hasChildNodes())swfObj.removeChild(swfObj.lastChild);
}
}catch(e){}
}
return false;
}
Si une erreur survient pendant la création de la balise object, ses éventuels noeuds enfants sont retirés de l'arbre DOM.
while(swfObj.hasChildNodes())swfObj.removeChild(swfObj.lastChild);
Mais ils demeurent en mémoire.
J'ai essayé ceci...
var old;
while(swfObj.hasChildNodes()){
old=swfObj.removeChild(swfObj.lastChild);
old=null;
}
swfObj=null;
Mais je ne connais pas le moyen de vérifier si la place occupée par chaque élément est effectivement libérée.
Modifié par Eric2A (15 Aug 2010 - 19:51)