Quel est le meilleur - Ext.get() ou d'un document.getElementById()
Quelle est la différence entre Ext.get()
et document.getElementById()
en termes de performance? Va Ext.get()
d'être plus lente, comme il peut, en interne, appel document.getElementById()
? Ou est-il un avantage spécifique d'aide Ext.get()
?
document.getElementById() == Ext.get().dom
OriginalL'auteur hop | 2011-12-31
Vous devez vous connecter pour publier un commentaire.
Le principe de l'avantage de la Poste.obtenez plus getElementById est qu'il vous revient d'un Poste.Élément de l'instance. Cette instance ne contient pas uniquement le nœud DOM de référence qui getElementById serait vous donner mais aussi de manière significative l'étend - offrir un ensemble de méthodes pratiques, cas de la normalisation et un nécessaire à repasser, de la croix-navigateur différences.
Sur la surface getElementById peut avoir quelques minuscules gain de vitesse sur Ext.obtenez tout simplement sur la base d'un moins la fonction avant d'arriver à la même appel DOM. Cependant, en termes de performance globale de ce que vous faites avec l'élément après la récupération sera probablement ont beaucoup plus d'impact que la recherche elle-même. Avoir le Poste.Élément wrapper sur la main peut s'avérer très bénéfique.
Vous voudrez peut-être avoir un coup d'oeil à l'Ext.voler ainsi. Cette méthode est similaire à l'Ext.obtenir à l'exception qu'il vous revient d'un singleton Ext.Élément de l'instance. Il ne sera pas bon si vous avez besoin de stocker l'élément pour l'utiliser plus tard, mais si vous faites simple, un hors opérations contre unique nœuds DOM, il peut être moins cher que la Poste.obtenez de l'.
OriginalL'auteur owlness
document.getElementById()
est JavaScript natif et donc sera plus rapide queExt.get()
Maintenant pourquoi
Ext.get()
est là à tous,document.getElementById()
retourne un élément du DOM, tandis queExt.get()
retourne unExt
objet qui est apte pour le chaînage de fins.Et c'est aussi la raison pourquoi jQuery ont un
$("#elm_id")
. Veuillez noter queExt.get()
est aussi beaucoup plus facile à taper 🙂OriginalL'auteur naveen
Ext.get()
permet à l'aide d'un ID de Chaîne, un HTMLElement, ou un Poste.L'élément de sorte qu'il est un peu plus souple.document.getElementById()
accepte uniquement l'ID de Chaîne.Cela dit, j'aimerais utiliser
document.getElementById()
si elle répond à vos besoins. Il est natif dans le navigateur et devrait être un peu plus rapide - et c'est un de moins appel que vous êtes le chaînage de vous-même à un framework JavaScript.OriginalL'auteur ziesemer
En termes de performances, natif JS fonctions sera toujours plus rapide.
Cependant, je ne dis pas de ne pas utiliser les Librairies JS, ils sont grands car ils:
Et en fin de compte, peut-être même vous gagnez du temps car moins de code signifie que le téléchargement plus rapide et, dans certains cas, il pourrait même battre la performance.
Alors oui, c'est la même utilisation de l'un sur l'autre, puisque dans une main, vous gagnez du temps en performance ("document.getElementById()") et dans l'autre, vous réduire la taille du fichier et le temps de téléchargement ("Ext.get()").
Vous pouvez utiliser à la fois et il ne devrait pas y avoir de différence notable.
OriginalL'auteur ajax333221
Comme d'autres l'ont échappé ici la méthode utilisée dépend de besoin, si vous voulez juste pour obtenir une référence à l'élément dom pour certains non Ext effet, vous pourriez aussi bien utiliser la fonction native, mais si vous avez l'intention d'effectuer des actions sur l'objet retourné dans un Poste contexte, Ext.obtenez de retour vous un Élément de référence qui propose d'autres méthodes.
Ext.obtenir est une abréviation de " Ext.ComponentManager.obtenir et alors que c'est un appel à une fonction de la bibliothèque et peut-être moins efficace, il doit être noté qu'il ya environ 180 méthodes disponibles sur Ext.Élément, donc si vous avez besoin de ces il peut être utile notamment wrapper appel.
Comme owlness a mentionné, Ext.voler() est conçu lorsque vous en avez besoin pour réaliser une fonction unique sur un élément, par exemple.
Ext.fly("myDiv").hide();
alors que les Ext.get() est prévu lorsque vous avez besoin d'obtenir une référence à un élément pour une utilisation ultérieure, par exemple.var something = Ext.get("myDiv");
alors peut-êtresomething.sort(); something.badger(); return something;
OriginalL'auteur dougajmcdonald
Je suis familier avec la librairie Ext, mais avec de la vanille Javascript, il n'y a qu'une poignée de façons d'obtenir un élément particulier; vous pouvez l'obtenir par son ID, le rechercher après l'obtention de tous les éléments par un nom de balise (c'est de cette façon JQuery obtient les éléments par nom de classe, je crois), ou de nouveaux HTML5, obtenir un élément d'un nom de classe. Il y a aussi d'autres façons, si vous êtes créatifs 😉
Juste de l'obtenir par l'ID est le moyen le plus rapide, en supposant que vous n'enregistrez une référence locale.
Donc, si vous essayez de faire est d'obtenir un élément sans faire quoi que Ext.js ne via cet appel de fonction, la vanille Javascript sera beaucoup plus rapide.
OriginalL'auteur Jeffrey Sweeney