Mémoire ?!

zbabug Messages postés 9 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 août 2010 - 28 mars 2006 à 14:01
schmurfy Messages postés 3 Date d'inscription mardi 26 août 2003 Statut Membre Dernière intervention 30 mars 2006 - 30 mars 2006 à 23:45
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

cs_azra Messages postés 425 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 13 juillet 2007 1
28 mars 2006 à 15:46
Gadget.Frog.Weather.getBaseMethod(this,"dispose","Web.Bindings.Base").call(this,p_arg);

??


<HR>
Azra (Florent) - MVS - MCAD.NET
0
zbabug Messages postés 9 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 août 2010
28 mars 2006 à 18:49
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 ?
0
schmurfy Messages postés 3 Date d'inscription mardi 26 août 2003 Statut Membre Dernière intervention 30 mars 2006
30 mars 2006 à 23:45
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 ;)
0
Rejoignez-nous