Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1551 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  JS sur IE : Problème de mémoire, je pense

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

JS sur IE : Problème de mémoire, je pense

n°1694721
ZeBix
edit > preview
Posté le 28-02-2008 à 21:01:06  profilanswer
 

J'ai un petit souci de Javascript :  
 
Sur une page toute simple, je génère une énorme array bidimensionnelle.  
 
Celle-ci est en fait constituée d'une série d'arrays temporaires qui sont "pushées" sur elle :  
 

Code :
  1. var mybigArray=new Array();
  2.                
  3. var JStemp = new Array();
  4. JStemp["index1"]="foo";JStemp["index2"] = "bar";JStemp["index3"] = "yeah";
  5. mybigArray.push(JStemp);
  6.  
  7. delete JStemp;
  8.  
  9. var JStemp = new Array();
  10. JStemp["index1"]="hey";JStemp["index2"] = "joe";JStemp["index3"] = "pouet";
  11. mybigArray.push(JStemp);
  12.  
  13. //etc.

Présenté comme ça , utiliser une array multidimensionnelles n'a pas d'intérêt ici mais je synthétise le code à l'extrême..
 
Il y a à peu près 4000 JStemp générées et pushées sur myBigArray, certaines des strings encodées font jusqu'à 255 caractères.
 
Avec FF et Opera : aucun problème, même si naturellement la  génération de la page met un certain temps (comme vous vous en doutez je ne tape pas les 4000 lignes, elles sont générées via des scripts).
 
Avec IE7 (pas essayé IE6, je ne l'ai plus sous la main), je reçois une "erreur de syntaxe" à une certaine ligne, qui ne diffère quasiment en rien de la ligne précédente, et à un certain caractère qui se trouve en plein milieu d'un index ou d'un contenu ...  
 
- Si je ne mets pas l'instruction "delete", le message arrive aussi, à quelques lignes de différences.  
- Si je raccourci drastiquement les strings contenues dans chacun des éléments de JStemp, même chose ...
 
Ce message d'erreur ne semble avoir aucune logique et donc à priori pas une erreur de syntaxe  comme il le prétend..
Du reste, si je mets en commentaires à partir de cette ligne jusqu'à la fin, ça fonctionne bien sans erreur.
 
Alors j'ai trouvé sur le Net une foule d'article sur les "memory leaks" d'Internet Explorer avec Javascript, mais cela ne semble concerner que des objets DOM faisant référence circulaire avec des objets JS, ce qui n'est pas mon cas ici. De plus, M$ a sorti un hotfix pour ce ce bug, qui a donc été corrigé.
 
Est-ce que vous avez une idée plus précise de ce qui m'arrive, et surtout comment je peux régler ce problème, à part en forçant les gens à ne plus utiliser IE ? (ce que je ne peux pas (encore?  :D ) faire au boulot, IE étant le seul navigateur officiel (c'est pas moi qui fais les règles...))


Message édité par ZeBix le 28-02-2008 à 21:01:28
mood
Publicité
Posté le 28-02-2008 à 21:01:06  profilanswer
 

n°1694723
FlorentG
Posté le 28-02-2008 à 21:02:46  profilanswer
 

Et il sert à quoi ton gros array ? [:pingouino]

n°1694730
ZeBix
edit > preview
Posté le 28-02-2008 à 21:30:29  profilanswer
 

à afficher une arborescence :)  - en Javascript car on doit pouvoir faire de rapides opérations browser du genre "open tree", "close tree" etc.  
 
Je sais on pourrait utiliser de l'Ajax etc., ce sera pour une version ultérieure, là faudrait vraiment que cette version tourne sur IE ... :/

n°1694731
FlorentG
Posté le 28-02-2008 à 21:31:29  profilanswer
 

Laisse tomber, c'est sûrement trop. Faut effectivement "lazy-loader" les sous-arbres en Ajasque

n°1694892
ZeBix
edit > preview
Posté le 29-02-2008 à 09:18:09  profilanswer
 

*sigh*  
 
merci quand même


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  JS sur IE : Problème de mémoire, je pense

 

Sujets relatifs
[Résolu] Problème de variable qui veut pas sortir d'une fonction.[RESOLU]Probleme ELSE
probléme affichage categorie sous annuairere probleme formulaire php
Problème avec le IF sous excelProblème de tri de vecteur
Problème : plusieurs conditions dans une colonne excelProbleme avec ma Requete count
Problème pour mettre mon site en ligne....Probleme avec la fonction mysql_connect
Plus de sujets relatifs à : JS sur IE : Problème de mémoire, je pense


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR