J'ai une application qui apporte une réponse via Ajax et crée 5-20 nouveaux écouteurs jQuery click sur chaque rafraîchissement. Les navigateurs IE et Mozilla semblent ralentir avec l'utilisation. Cela peut-il ralentir considérablement les performances du navigateur. Les auditeurs peuvent-ils être "libérés"?peut ajouter des écouteurs jQuery ralentir les performances du navigateur?
Répondre
Les sélecteurs définis à l'aide de .bind()
sont libérés lorsque l'élément est supprimé ou .unbind()
. Ceux définis en utilisant .live()
persistent jusqu'à ce que vous appeliez .die()
ou l'élément auquel ils sont liés est supprimé (qui peut être quelque part dans le DOM si vous spécifiez, sinon il sera par défaut à la racine DOM - .live()
fonctionne en ne liant pas à l'élément cible l'élément peut être supprimé/remplacé/mis à jour et les écouteurs d'événement sont toujours liés). Les écouteurs de 5 à 20 sonne un peu trop - pensez à lier moins de gestionnaires si possible car les anciens navigateurs craqueront sous la pression beaucoup plus rapidement que les plus récents.
Pour ajouter à ce que Andy a dit à propos en direct. Vous devez probablement utiliser delegate ou live sur les éléments que vous ajoutez à la page Il semble que vous ne liez pas les événements uniques aux nouveaux éléments (à chaque actualisation) mais réutilisez plutôt les fonctions.
En jQuery 1.4.2 utilisation peut utiliser délégué() comme ceci:
// the container, the selector, "the event", the function to be called
$("#container").delegate(".selector", "click", function(){
// do stuff...
});
Cela aurait seulement besoin d'être appelé une fois et chaque nouvel élément avec la classe « sélecteur » ajouté à la « #container » aura son événement click lié
- 1. Ajouter dynamiquement des écouteurs d'événement
- 2. Plugin du navigateur Web pour l'optimisation des performances de jquery
- 3. ballant famille de polices disponibles ralentir les performances
- 4. Problèmes de performances de navigateur croisé jQuery
- 5. Amélioration des performances de WebView (les performances doivent être identiques à celles du navigateur Web natif)
- 6. Analyser les performances du sélecteur jQuery?
- 7. Lecture des cookies du navigateur ... jQuery
- 8. Comment ajouter des écouteurs Mate en utilisant Action Script
- 9. Est-ce que jquery vit ralentir des sites Web?
- 10. Performances SSRS lors de la première ouverture du navigateur
- 11. Comment ajouter un état d'historique du navigateur?
- 12. frais généraux de performance des écouteurs d'événements sur les classes CSS utilisées dans le code JQuery
- 13. jQuery IE7 bug sur plusieurs écouteurs .hide
- 14. Problème avec les écouteurs d'événements
- 15. Compatibilité du navigateur dans jQuery
- 16. version du navigateur dans jquery
- 17. Les écouteurs Nhibernate ne fonctionnent pas correctement
- 18. Améliorer les performances de ce script jquery
- 19. MPMoviePlayerViewController arrête la lecture lors du débranchement des écouteurs
- 20. Ajouter au menu contextuel du navigateur?
- 21. peut mettre 1000 de déclaration d'importation ralentir l'exécution?
- 22. Ralentir l'animation coulissante entre les activités Android?
- 23. Les écouteurs http dans les threads
- 24. Comment gérer les événements à partir des boutons du navigateur
- 25. Améliorer les performances des méthodes
- 26. Performances de repaint/reflow du navigateur: utilisation des dégradés CSS3 par rapport aux dégradés PNG
- 27. Performances du proxy d'image
- 28. Comment optimiser les performances du serveur?
- 29. suppression des points d'historique du navigateur
- 30. Capture des événements du navigateur
assurez-vous que les éléments sont supprimés via jQuery. La méthode empty() et html() fonctionneront. –