2010-08-03 4 views
1

Dans mon application Web intranet, il y a une table d'éléments qui utilise actuellement la balise id pour sélectionner la ligne prévue, la sélection est à un taux de 5-10 sélections/sec. La méthode actuellement utilisée peut provoquer des incohérences de temps en temps en raison de la nature asynchrone et il est très difficile de la synchroniser correctement.getelementbyid vs index

La question est la sélection par index (via balise eq dans jquery) plus rapide que la sélection par ID (via getElementByID)? J'ai fait un peu de test et il a montré que l'identification est légèrement plus rapide mais j'ai pensé que je demanderais la confirmation de la communauté.

Répondre

1

Il me semblerait, bien que contre votre conclusion que getElementByID serait plus rapide puisque jquery est construit sur javascript bien que je ne sache pas quelque chose sur jquery nécessaire pour répondre à cette question.

Se résume à javascript brut par rapport à une couche sur le dessus de javascript et javascript sera toujours roi dans cette compétition.

1

Rien dans jQuery n'est plus rapide que getElementById ou toute autre fonction de sélection DOM intégrée. Chaque fois que vous invoquez $, vous encourez une pénalité de performance. Certes, si votre sélecteur jQuery est aussi simple que '#somediv', la différence sera légère. Mais si vous êtes à la recherche de performances et que vous voulez vraiment améliorer vos performances, n'utilisez pas jQuery.

Si vous avez absolument besoin des fonctions wrapper de jQuery, appelez $(document.getElementById('somediv')); et affectez le résultat à une variable que vous pouvez réutiliser.

Bien que sans voir votre code, il est difficile de dire comment vous pouvez le mieux l'optimiser ou même si jQuery est le principal goulot d'étranglement.