[JS/DOM] quelles sont les bonnes pratiques
Bonjour à toutes et à tous,
Je suis assez peu expérimenté en JS/DOM.
Je suis en train d’écrire un « source » qui, à partir de tables MySQL affiche, dans un <form> les données.
Comme l’utilisateur doit faire de nombreux choix en cascade, je crée à la volée les éléments de formulaire <select>, <input radios>, <input checkboxes>, <input buttons>… dans une <div> créée à cet effet.
Code:
1 2 3
| var conteneur = document.getElementById(idParent);
var selection = document.createElement('select');
if (idSelect !== '') { selection.setAttribute('id', idSelect);} |
À chaque choix effectué je « détruit » les éléments créés, à l’aide de la fonction suivante (trouvée sur un forum)
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| function purge(CurrentNode)
{
try
{
//Récupération de tous les noeuds enfants
while (CurrentNode.childNodes.length > 0) {
//Si le premier enfant a des enfants appel récursif de la méthode
if(CurrentNode.firstChild.childNodes.length > 0){
this.purge(CurrentNode.firstChild);
}
//Sinon on parcours ses propriétés pour supprimer les évènements lié aux objet, puis destruction de l'objet
else{
var tempo = CurrentNode.firstChild ;
var a = tempo.attributes, i, l, n;
if (a) {
l = a.length;
for (i = 0; i < l; i += 1) {
n = a[i].name;
if (typeof tempo[n] === 'function') {
tempo[n] = null;
}
}
}
tempo = null;
CurrentNode.removeChild(CurrentNode.firstChild);
}
}
}
catch(e) { alert(e); }
} |
Je me pose une question : est-il plus judicieux (en terme de rapidité d’exécution, de mémoire allouée, …) de détruire systématiquement les objets pour éventuellement les recréer presque à l’identique ou de modifier les propriétés des objets existants.
Merci et bonne journée.:)