Was ist besser - Ext.get() oder document.getElementById()
Was ist der Unterschied zwischen Ext.get()
und document.getElementById()
im Bezug auf Leistung? Wird Ext.get()
langsamer sein, da kann es intern nennen document.getElementById()
? Oder gibt es irgendwelche spezifischen Vorteil in der Nutzung Ext.get()
?
document.getElementById() == Ext.get().dom
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das Prinzip Vorteil der Ext.Holen Sie sich über getElementById ist, dass es gibt Ihnen einen Ext.Element-Instanz. Diese Instanz enthält nicht nur die DOM-Knoten verweisen, dass getElementById geben würde, Sie aber auch erheblich erweitert - bietet eine Reihe von convenience-Methoden, event-Normalisierung, und ein Bügeleisen /- out cross-browser Unterschiede.
Auf der Oberfläche getElementById möglicherweise einige winzige Geschwindigkeitsvorteil über Ext.Holen Sie sich einfach die auf der Grundlage einer weniger-Funktion, bevor Sie auf den gleichen grundlegenden DOM nennen. Aber in Bezug auf die Gesamtleistung, was Sie tun, mit dem element nach dem retrieval wird wahrscheinlich viel mehr Einfluss als die Rückholung selbst. Mit der Ext.Element-wrapper auf der hand kann sich als sehr vorteilhaft.
Haben möchten Sie vielleicht einen Blick auf Ext.Fliegen Sie als gut. Diese Methode ist vergleichbar mit Ext.mit Ausnahme, dass es gibt Ihnen eine singleton-Ext.Element-Instanz. Es wird nicht gut sein, wenn Sie brauchen, um zu speichern das element für die spätere Verwendung, aber wenn Sie tun, einfach, ein-aus-Operationen gegen unique DOM-Knoten kann es billiger sein als die Ext.bekommen.
document.getElementById()
ist native JavaScript und so wird schneller sein alsExt.get()
Nun, warum
Ext.get()
ist es überhaupt,document.getElementById()
gibt ein DOM-element, währendExt.get()
gibt einExt
Objekt ist geeignet für die Verkettung Zwecke.- Und das ist auch der Grund, warum jQuery eine
$("#elm_id")
. Bitte beachten Sie, dassExt.get()
ist auch viel einfacher zu geben 🙂Ext.get()
ermöglicht die Verwendung einer String-ID einem vorhandenen HTMLElement, oder eine Ext.Element - so ist es ein wenig flexibler.document.getElementById()
akzeptiert nur die String-ID.Sagte, ich würde nur verwenden
document.getElementById()
wenn es Ihren Anforderungen entspricht. Es ist nativ auf dem browser und sollte ein wenig schneller und es ist weniger ein Anruf, dass Sie verketten sich zu einem bestimmten JavaScript-framework mit.In Bezug auf Leistung, nativen JS-Funktionen werden immer schneller.
Bin ich allerdings nicht zu sagen, nicht zu verwenden JS-Bibliotheken, Sie sind groß, wie Sie:
Und am Ende, vielleicht haben Sie sogar Zeit sparen, weil weniger code bedeutet, schneller download und in einigen Fällen könnte es sogar schlagen die Leistung.
Also ja, es ist die gleichen, die Sie einen über den anderen, da in einer hand sparen Sie Zeit durch Leistung ("Dokument.getElementById()") und in der anderen reduzieren Sie die Dateigröße und download-Zeit ("Ext.get()").
Können Sie beide verwenden und es sollte keine spürbaren Unterschied.
Als andere entzog, um hier die verwendete Methode hängt davon ab müssen, wenn Sie nur wollen, um eine Referenz auf das dom-element für einige non Ext Zweck können Sie auch die native Funktion, aber wenn Sie wollen Aktionen auf das zurückgegebene Objekt in ein Ext Kontext, dann Ext.bekommen werden Sie wieder ein Element Referenz, die bietet zusätzliche Methoden.
Ext.zu bekommen ist die Kurzform für Ext.ComponentManager.bekommen und zwar ist es ein Aufruf einer library-Funktion und kann weniger effizient ist, sollte darauf hingewiesen werden, dass es ~180 Methoden zur Verfügung, auf Ext.Element, so dass, wenn Sie brauchen, kann es sich lohnen, einschließlich wrapper-Aufruf.
Als owlness hat erwähnt, Ext.Fliegen() ist entworfen, wenn Sie brauchen, um eine einzelne Funktion auf ein element, wie zB.
Ext.fly("myDiv").hide();
in der Erwägung, dass Ext.get() bestimmt ist, wenn Sie benötigen zu bekommen eine Referenz auf ein element für die spätere Verwendung, wie zB.var something = Ext.get("myDiv");
dann vielleichtsomething.sort(); something.badger(); return something;
Ich bin nicht vertraut mit der Ext-Bibliothek, aber mit vanilla Javascript, es gibt nur eine Handvoll Möglichkeiten, um ein bestimmtes element; Sie können es, indem Sie seine ID, Suche nach für es nach dem Sie alle Elemente, indem Sie einen tag-Namen (dies ist, wie JQuery bekommt die Elemente durch class-name glaube ich), oder, neue auf HTML5, um ein element der name einer Klasse. Es gibt ein paar andere Möglichkeiten, wenn Sie kreativ werden 😉
Nur, wie es von ID ist die Schnellste, vorausgesetzt, dass Sie nicht speichern eine lokale Referenz.
Also, wenn alles, was Sie versuchen zu tun ist, erhalten Sie ein element, ohne zu tun, was Ext.js über die Funktion call, vanilla Javascript viel schneller.