var n= 0;
for (var i in jQuery.cache)
n++;
maintenant n
contient le nombre d'éléments jQuery a 'touché' (données ajoutées, telles que gestionnaires d'événements).
Auparavant, c'était beaucoup, car il «touche» chaque élément, il était même en vérifiant pour les données. Ce désagrément est corrigé dans jQuery 1.4. En ce qui concerne l'effacement du contenu, oui, vous pouvez utiliser innerHTML= ''
pour supprimer tout le contenu sans donner à jQuery la possibilité de détacher ses données très lentement. Si vous savez qu'il n'y a pas d'éléments "touchés" dans l'élément, c'est une perte de mémoire potentielle jusqu'à ce que la page soit rechargée, car les données inutilisées restent en permanence. L'utilisation de la liaison d'événements live()
/delegate()
évite d'ajouter des données à ses éléments cibles, ce qui peut vous permettre d'utiliser ce raccourci plus librement. Cependant, si vous avez de nombreux événements à lier et que ce ne sont pas des sélecteurs qui sont très faciles à faire correspondre rapidement, cela peut ralentir la gestion des événements.
(Parce qu'il n'y a pas de navigateur speedup natif comme querySelectorAll
pour les éléments correspondant contre un sélecteur particulier que la délégation doit faire, ce qui est proposé pour le niveau 2. API Selectors-)
1 - Je me demandais à ce sujet . Je savais que jQuery ajoutait un numéro de série aux éléments, mais ne savait pas où jQuery les référençait. – user113716
Merci, très utile. – Cheeso