Je me demande si le code jquery suivant provoque une fuite de mémoire:Cet extrait de code jQuery provoque-t-il des fuites de mémoire?
$(function() {
var parent=$('table#mytable tbody').get(0);
$('tr:last', parent).click(function(){...});
});
Pour ma compréhension, $('tr:last', parent)
est la dernière ligne qui est l'objet DOM, mais dans la fonction anonyme, la fermeture a cet objet DOM scope, il existe donc une référence circulaire entre les objets DOM et js.
Mais s'il y a vraiment une fuite, alors je peux voir qu'il y a beaucoup de type de code dans le livre populaire "jQuery in Action" publié par Manning. C'est une «meilleure pratique» nuisible dans le codage jQuery? Mais je ne sais pas si ma compréhension est correcte. J'espère que vos commentaires et corrections. Merci!
Est-ce que firefox a une telle fuite? – jscoot
aucun firefox n'a une telle fuite seulement c'est-à-dire a ceci. –
La question portait sur jQuery et au moins à partir de la version de jQuery publiée en janvier 2009, ce code ne fuira PAS. Cette réponse est fausse. Voir ma bonne réponse ci-dessous. – umassthrower