J'obtiens l'erreur "Uncaught RangeError: taille maximale de la pile d'appels dépassée" sur chrome. voici ma fonction jQuery
$('td').click(function () {
if ($(this).context.id != null && $(this).context.id != '') {
foo($('#docId').val(), $(this).attr('id'));
}
return false;
});
Notez qu'il y a des dizaines de milliers de cellules dans la page. Cependant, j'associe généralement les débordements de pile à la récursivité et dans ce cas, pour autant que je puisse voir, il n'y en a pas.
La création d'un lambda comme celui-ci génère-t-elle automatiquement une charge de choses sur la pile? y a-t-il moyen de contourner cela?
Pour le moment, la seule solution de contournement dont je dispose est de générer explicitement les événements onclick sur chaque cellule lors du rendu du HTML, ce qui rend le HTML beaucoup plus grand.
foo($('#docId').val(), $(this).attr('id'));
ligne? - Astuce de performance supplémentaire: mettez en cache le résultat des sélecteurs - par exemple, conservez le résultat de $(this)
dans une variable et utilisez-le ensuite dans votre gestionnaire si nécessaire.