Question

J'écris jQuery pour une page qui est un gâchis complexe de nombreux éléments DOM (Je ne contrôle pas à ce sujet). Le navigateur cible principal est IE7 , et j'ai des préoccupations au sujet de la vitesse de son moteur JavaScript. Les scripts que je l'ai déjà écrit sont laggy et ont été la performance à l'écoute au meilleur de mes capacités.

Je pourrais écrire script qui est simple à maintenir et à comprendre, par exemple en utilisant un seul contains . Ou je peux aider le moteur en restreignant la recherche DOM HTML par ce désordre résultant dans une plus grande complexité.

Dois-je me soucier de la vitesse du moteur JavaScript du navigateur lors de l'écriture des scripts jQuery?

Était-ce utile?

La solution

jQuery est écrit en JavaScript. Donc, vous devriez se soucier de la vitesse du moteur JavaScript car elle affecte également la vitesse de votre code jQuery.

Il y a beaucoup de trucs et astuces sur la façon d'écrire du code jQuery plus efficace. Le principal principe est de comprendre comment fonctionne jQuery, comment les sélecteurs sont convertis en requêtes qui sélectionnent les éléments du DOM et ainsi de suite.

Autres conseils

Essayez d'utiliser des méthodes Javascript natives au lieu de méthodes jQuery chaque fois que possible et vous remarquerez généralement une amélioration de la vitesse importante, en particulier dans IE. Les JS de IE moteur de rendu est SLLLOOOOWWW par rapport aux autres navigateurs non sucky .

Par exemple, j'ai eu un script AJAX qui était en cours d'exécution bien dans FF / Safari mais couru comme la mélasse congelés dans IE. Il s'avère que le développeur qui a écrit il a fait une utilisation intensive de la méthode de .each () de $ jQuery pour obtenir des données d'un grand fichier JSON. Je réécrit le script pour utiliser JS standard pour () boucles au lieu, et courir quelques tests de vitesse sur elle ensuite montré que l'utilisation de () était plus de vingt fois plus rapide.

Oui, mais vous ne devriez pas obséder dessus:)

Contient pourrait être relativement lente, car je ne crois pas que le modèle de document est indexé en aucune façon par ce texte apparaît à l'intérieur des éléments.

Cependant, je ne suis pas sûr qu'il est sage d'essayer de overengineer quelque chose et optimiser pour l'amour de optimizings. Optez pour la chose la plus simple qui fonctionne, test, puis optimiser si vous avez un problème.

Je ne suis pas exécuter dans un seul cas où les avantages d'utiliser JQuery ou d'un plug-in (compatibilité inter-navigateur, la fonctionnalité extrêmement utile) sont compensés par une baisse de la vitesse. Et je travaille avec assez grandes pages Web parfois.

Quoi qu'il en soit, la seule façon que vous allez savoir est de l'essayer. Écrivez votre code de la manière la plus sensible possible au début. Si elle est trop lent, alors vous pouvez chercher à l'optimiser.

Optimisation DOM Traversal http://www.learningjquery.com/2006/12/ quick-tip-optimisation-dom-traversal

Non, vous ne devriez pas se soucier, parce que cela ne devrait pas affecter la façon dont vous écrivez du code.

C'est-à-dire que vous devez à la fois parce qu'il est toujours écrire Javascript efficace, juste de bonnes pratiques, et parce que pour la plupart des sites que vous avez aucune idée de ce navigateur un utilisateur particulier est en cours d'exécution, vous pouvez aussi bien assumer le pire.

Oui, vous devriez vous inquiéter, mais heureusement, l'équipe jQuery est aussi concernée:

Modifications récentes à jQuery Internes (Consultez deux dernières diapositives)

Ne pas trop optimiser, mais d'optimiser autant que vous avez besoin.

S'il est lent, alors vous avez vraiment pas d'autre choix que d'aller là-bas et aide jquery dehors. Mais si ce n'est pas, pourquoi la peine.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top