hakim_asm
Messages postés2Date d'inscriptionsamedi 25 février 2006StatutMembreDernière intervention22 juin 2007
-
22 juin 2007 à 10:34
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 2013
-
22 juin 2007 à 12:38
Il y a tout une serie input crée en javascript. Ceci pose probleme, cela alourdit le DOM et ralentit la page.
pour contrecarrer le probleme, il faudrait remplacer les input par
des div et que lorsque l'on clique sur une case, celle-ci se transforme
en input.
mais je suis debutant en javascript je sais pas comment faire
for ( var indexLieu = 0 ; indexLieu < listeLieuxStockage.length ; indexLieu ++ ) {
// on met autocomplete=\"off\" a cause des problemes au niveau des
firemoveDown et fireMoveUp (si on a des valeur deja dans l'input ça
genere des erreurs javascript)
resultHTML+=\", \";
resultHTML+=\", \"
}
resultHTML+=\", \";
resultHTML+=\"\";
}
resultHTML += \"----
Sous Total de la selection
valorisé :, \";
$(\"status\").innerHTML = \"\";
resultHTML += \"\";
resultHTML += "
";
$('tableauInventaire').innerHTML = resultHTML;
// gestion des evenements sur les champs input du tableau
for ( var i = 0 ; i < listeProduits.length ; i++ ) {
for ( var indexLieu = 0 ; indexLieu < listeLieuxStockage.length ; indexLieu ++ ) {
var elementId = createInputId(listeProduits[i],indexLieu);
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 22 juin 2007 à 12:38
Bonjour,
c'est parce que tu les ajoutes dans innerHTML.
c'est très bien et très pratique, mais les performances se dégradent s'il y a trop d'ajouts,
remplacer par un div ne changera rien... je ne parle pas de la gymnastique
pour "transformer en input texte"
fais tes ajouts dans ce style :
xyz = document.createElement("INPUT") ;
xyz.id = "id du xyz" ;
xyz.setAttribute("type", "text") ; ...
document.getElementById("id élément où ajouter").appendChild(xyz) ;