Mémoire ?!

Signaler
Messages postés
9
Date d'inscription
lundi 24 février 2003
Statut
Membre
Dernière intervention
2 août 2010
-
Messages postés
3
Date d'inscription
mardi 26 août 2003
Statut
Membre
Dernière intervention
30 mars 2006
-
Voici un gadget tout bête qui fait rien. Lorsque je le lance, j'ai bien le message 'init' qui apparait, mais lorsque je l'enlève, le message 'dispose' n'apparait pas. Ce qui semble indiquer que la fonction dispose n'est pas appelé !



Du coup, comment faire pour libérer la mémoire utilisée par le gadget ?

ou comment faire pour la fonction dispose soit appelé ?



Personnellement, je constate, dans le gestionnaire de tâche, que à
chaque fois que met et enlève le gadget, il y a de plus en plus de
mémoire utilisée. C'est pas terrible... Et ça le fait avec tous les
gadgets, même ceux de Microsoft...



registerNamespace("Gadget");



Gadget.Test = function(p_elSource, p_args, p_namespace)

{

Gadget.Test.initializeBase(this, arguments);



this.initialize = function(p_objScope)

{


Gadget.Test.getBaseMethod(this, "initialize",
"Web.Bindings.Base").call(this, p_objScope);



alert("init");

}

Gadget.Test.registerBaseMethod(this, "initialize");



this.dispose = function(p_arg)

{

alert("dispose");




Gadget.Frog.Weather.getBaseMethod(this,"dispose","Web.Bindings.Base").call(this,p_arg);

};

Gadget.Test.registerBaseMethod(this, "dispose");

}

Gadget.Test.registerClass("Gadget.Test", "Web.Bindings.Base");

3 réponses

Messages postés
425
Date d'inscription
mercredi 22 janvier 2003
Statut
Modérateur
Dernière intervention
13 juillet 2007

Gadget.Frog.Weather.getBaseMethod(this,"dispose","Web.Bindings.Base").call(this,p_arg);

??


<HR>
Azra (Florent) - MVS - MCAD.NET
Messages postés
9
Date d'inscription
lundi 24 février 2003
Statut
Membre
Dernière intervention
2 août 2010

Erreur de copier/coller dans le message original (désolé)



Gadget.Frog.Weather -->
Gadget.Test



Mais ça ne change pas le problème !



En faisant plus de test, j'ai remarqué que la fonction dispose est appelé si il y a une erreur dans la fonction initialize.



Par exemple, si on fait (juste pour provoquer une erreur) : p_elSource.document.write(""); // interdit


dans la fonction initialize alors le message 'dispose' apparait...



le mystère persiste pour moi... quelqu'un a-t-il une idée ?
Messages postés
3
Date d'inscription
mardi 26 août 2003
Statut
Membre
Dernière intervention
30 mars 2006

tu a raison la mémoire des gadgets n'est effectivement pas libéré.

En même temps est ce bien dramatique ? de toute facon le framework est déjà tellement massif que mon ie passe de 16Mo à 30Mo rien qu'en allant sur le portail live sans aucun gadget de chargé, ce qui veux quand meme dire que le framework prends presque autant de mémoire que ie lui meme...
Arrivé à ce stade c'est pas quelques Mo qui vont changer grand chose.

Et en cherchant un peu tu va en trouver d'autres des trucs bizarres dans ce framework si c'est pas déjà fait ;)