Probleme nombre de div dans la page

gatita_dev Messages postés 135 Date d'inscription vendredi 27 mai 2005 Statut Membre Dernière intervention 5 février 2008 - 27 févr. 2007 à 17:52
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 - 1 mars 2007 à 15:42
Bonjour, je fais l'interpretation d'une feuille excel sur une page Web, je travaille comme suit:
j'ai fais des tableau dans chaque cellule il y a un
et je travaille avec la methode onpropertychange pour executer plusieurs fonction.
le problème c'est j'ai un nombre enorme de
ce qui fait que à un certain moment j'arrive plus à executer les fonction, j'ai essayé avec les zone de texte ça me rend un stack overflow mais malgré ça les fonctions s'excute.
personnellement je vois pas une solution, qlq 1 peut il m'aider????
merci d'avance

21 réponses

PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
27 févr. 2007 à 18:03
B
onjour...
Un nombre important de DIV -> c'est combien 100, 1000, 10000 ou plus
Un peu de code pour plus d'éclairage serait le bien venu, le problème est peut être ailleurs... 
possible que le onpropertychange, si je comprend bien, modifie le contenu de la cellule d'ou un onpropertychange en cascade etc...
;0)
0
gatita_dev Messages postés 135 Date d'inscription vendredi 27 mai 2005 Statut Membre Dernière intervention 5 février 2008
28 févr. 2007 à 10:23
J'ai presque 200 div jusqu'à mnt, et je sais que le problème est là, tout marche parfaitement jusqu'au div 112 aprés rien ne change, si je désactive quelque div du début les autres div qui ne changéait pas de valeur fonctionne encore une fois jusqu'au div 112. Je ne peux pas mettre le code mais je pense que c'est un problème de mémoire peut être. s'il y a une autre façon d'avoir une page ayant une structure comme celle d'une feuille excel, Merci de me le signaler
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
28 févr. 2007 à 11:31
Bonjour,

    je ne sais pas s'il y a une limite ( j'en doute d'ailleurs )
    la vraie question c'est : qu'est-ce qui peut justifier autant de DIV ?

    >>ça me rend un stack overflow
    ça c'est en général un fonction récursive... dont on ne sort jamais.
    par exemple.




<hr />



Cordialement                Bul             [mon Site]         [M'écrire]  




<hr />
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
28 févr. 2007 à 11:36
et même ajouter 1000 div en dynamique : pas de problème.

<script type="text/javascript">
    var t="";
    for ( var n=0;n<1000;n++ )
    {
        t+="
"+n+"
";
    }
    document.body.innerHTML+=t;
</script>

<hr />


Cordialement            Bul         [mon Site]     [M'écrire]              




<hr />
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
gatita_dev Messages postés 135 Date d'inscription vendredi 27 mai 2005 Statut Membre Dernière intervention 5 février 2008
28 févr. 2007 à 15:49
Oui les div s'ajoute normalement mais à un stade les fonction qui me renvoi les valeurs aux div ne fonctionne plus, donc j'arrive plus à changé le contenu du div. Vraiment je comprend pas pourquoi, ou je vois pas une solution
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
28 févr. 2007 à 16:00
>>mais à un stade les fonction qui me renvoi les valeurs aux div ne fonctionne plus,
>>donc j'arrive plus à changé le contenu du div


faut-il que l'on fasse un essai de fonctionnement sans trop comprendre
    ce que tu fais... ou tu nous donnes un exemple ?
    ( un extrait, pas 368956 lignes !!! )
    car, pour être simple... aucune raison, à priori !

<hr />


Cordialement            Bul         [mon Site]     [M'écrire]  




<hr />
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
28 févr. 2007 à 16:08
car pour moi, essai avec 5000 div, et une fonction sur chaque,
    qui en modifie le contenu... ça baigne !

<script type="text/javascript">
    function traiter(obj)
    {
        obj.innerHTML+=obj.innerHTML;
    }
    var t="";
    for ( var n=0;n<5000;n++ )
    {
        t+="
"+n+"

";
    }
    document.body.innerHTML+=t;
</script>

<hr />


Cordialement            Bul         [mon Site]     [M'écrire]           




<hr />
0
gatita_dev Messages postés 135 Date d'inscription vendredi 27 mai 2005 Statut Membre Dernière intervention 5 février 2008
28 févr. 2007 à 16:24
Quand j'extrait la partie qui marche pas, elle fonctionne trés bien, moi j'ajoute pas les div dynamiquement, je  vais recommencer la page depuis le debut pour m'assurer qu'il y a pas un bug qlq part
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
28 févr. 2007 à 16:41
ce qui est sûr, c'est que l'erreur est ailleurs que
    là où tu le supposais. on ne peut guère t'en dire
    plus sans plus de données ( enfin moi ! )
<hr />


Cordialement            Bul         [mon Site]     [M'écrire]        




<hr />
0
gatita_dev Messages postés 135 Date d'inscription vendredi 27 mai 2005 Statut Membre Dernière intervention 5 février 2008
28 févr. 2007 à 16:52
Ok merci beaucoup pour tes réponse
0
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
28 févr. 2007 à 17:29
B
onjour...
je confirme, pas de problème avec 800 x 600 divs dans une page
je confirme stack overflow ça c'est en général un fonction récursive ou encore une boucle mal maitrisée
je confirme à la lecture le problème est peut être ailleurs

...OUAIS mais qui suis je pour confirmé !!!

s'il y a une autre façon d'avoir une page ayant une structure comme celle d'une feuille excel
Une gestion grâce à une table
je te donne un exemple pour test sans plus de commentaire...
<html>
<head>
<title></title>
<script type="text/javascript">
//---------------------
function Cree_Tableau(){
  var Html ="";
  Html += '';
  for( var j=0; j<10; j++){
    Html += '----
';
      for( var i=0; i<10; i++)
        Html += 'Col='+ i +'
Lig='+ j+', ';
    Html += '';
  }
  Html += '
';
  document.write( Html);
}
//-------------------
function Test_Modif(){
  var szTmp = document.getElementById( 'I_TXT').value;
  for( var Lig=2; Lig<5; Lig++){
    for( var Col=2; Col<7; Col++){
      Modif_Valeur('T_TABLE', Lig, Col, szTmp + (Col+Lig));
    }
  }
}
//-------------------------------------------
function Modif_Valeur( id_, lig_, col_, val_){
  var Obj = document.getElementById( id_);
  var Nb_Ligne = Obj.rows.length;
  if( lig_ <= Nb_Ligne){
    var Nb_Col = Obj.rows[lig_].cells.length;
    if( col_ <= Nb_Col){
      Obj.rows[lig_].cells[col_].innerHTML = val_;
    }
  }
}
Cree_Tableau();
</script>
</head>

</html>

et pour finir je confirme qu'avec un bout de source il est plus souvent plus facile de répondre...
Bon courage...
;0)
0
gatita_dev Messages postés 135 Date d'inscription vendredi 27 mai 2005 Statut Membre Dernière intervention 5 février 2008
28 févr. 2007 à 18:05
Merci pour ce bout de code je pense que je vais l'utiliser pour recommencer ma page, bon voilà la partie qui marche pas mais comme j'ai déjà dis ça marche trés bien quand je l'extrais du reste de la page
<TD noWrap align="right">
      
0.00

      ?
     </TD>
     <TD noWrap align="right">
      
0.00

      ?
     </TD>
     <TD noWrap align="right">
      
0.00

      
      ?
     </TD>
je cherche toujours d'ou vient le problème, ma recherche n'a pas abouti et là je commence une nouvelle page
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
1 mars 2007 à 06:48
j'avoue ne pas connaitre onpropertychange...
    c'est censé faire quoi ? être declanché quand ?
    on n'en parle pas dans mes docs, et mon éditeur me met ça en rouge ?

dans rvGaranti2 on utilise document.getElementById(this.id).innerHTML
            this.innerHTML suffirait.




on n'a pas la fonction RevenuGestion







<hr />



Cordialement            Bul         [mon Site]     [M'écrire]        




<hr />
0
gatita_dev Messages postés 135 Date d'inscription vendredi 27 mai 2005 Statut Membre Dernière intervention 5 février 2008
1 mars 2007 à 10:29
Onpropertychange se declanche quand une propriété de la div change parce que onchange n'existe pas pour les div.
La fonction RevenuGestion est celle là
function RevenuGestion(mt){
rst= parseFloat(document.getElementById(mt).innerHTML* document.getElementById('pMarcheFinancier').innerHTML/100*document.getElementById('nMarcheFinancier').innerHTML/100)+ parseFloat(document.getElementById(mt).innerHTML*document.getElementById('pTrade').innerHTML/100*document.getElementById('nTrade').innerHTML/100);
return (rst);
}
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
1 mars 2007 à 10:49
    comme on n'a pas les champs utilisés dans la fonction...
    mais, elle ne peut pas provoquer le "stack overflow", bête calcul qui ne peut pas faire trop de mal.
    mais, pourquoi diable être passé par des div là où des input text conviendraient ? non ? c'est fait pour ça.
<hr />                    Cordialement                Bul         [mon Site]     [M'écrire]<hr />
0
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
1 mars 2007 à 11:55
lu sur http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/reference/properties.asp
Changing the innerText or innerHTML of child elements will not cause the onpropertychange event to fire for the parent element

Il n'y a que du calcul OUI MAIS ce calcul change le innerHTML donc pas de problème, mais ne change t-il pas la largeur des DIVs
Si OUI il peut y avoir effet boule de neige
  mettre une largeur fixe au DIV suffisament grande pour qu'il n'y ai pas de risque
Si NON
  ????

;0?
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
1 mars 2007 à 12:18
probablement bien vu PetoleTeam,
    ça tourne autour d'un truc comme ça,
    je n'arrivais pas à définir quoi exactement.
<hr />                Cordialement            Bul         [mon Site]     [M'écrire]<hr />
0
gatita_dev Messages postés 135 Date d'inscription vendredi 27 mai 2005 Statut Membre Dernière intervention 5 février 2008
1 mars 2007 à 14:41
bon je vais definir les largeur et je vous ferai part du resultat, merci pour votre interet
0
gatita_dev Messages postés 135 Date d'inscription vendredi 27 mai 2005 Statut Membre Dernière intervention 5 février 2008
1 mars 2007 à 14:49
ça n'a rien changé toujours le même problème, je vais essayer avec des input text
0
gatita_dev Messages postés 135 Date d'inscription vendredi 27 mai 2005 Statut Membre Dernière intervention 5 février 2008
1 mars 2007 à 15:00
quand je met des zones de texte il me rend un stack overflow et puis plus rien ne fonctionne, et je peux pas mettre et si je remplace onpropertychange par onchange plus rien ne se passe
0
Rejoignez-nous