在性能方面,Ext.get()
和document.getElementById()
之間有什麼區別? Ext.get()
會更慢,因爲它可能會在內部呼叫document.getElementById()
?或者是否有使用Ext.get()
的特定優勢?哪一個更好 - Ext.get()或document.getElementById()
回答
Ext.get getElementById的主要優點是返回給你一個Ext.Element實例。這種情況下,不僅包含了DOM節點引用,的getElementById會給你,但也顯著其擴展 - 提供一套方便的方法,活動正常化,和熨燙出來的跨瀏覽器的差異。
表面上的getElementById可能只是少了一個功能,讓相同的基本DOM調用之前的基礎上,在Ext.get一些微不足道的速度增益。但是,就整體性能而言,在檢索後對元素所做的操作可能比檢索本身具有更多的影響。手頭上的Ext.Element包裝可能證明是相當有益的。
你可能想看看Ext.fly爲好。這個方法與Ext.get類似,只是它返回給你一個單例Ext.Element實例。這不會是什麼好,如果你需要存儲供以後使用的元素,但如果你正在做簡單的,對獨特的DOM節點一次性的操作可能比Ext.get便宜。
document.getElementById()
是原生的JavaScript,因此將快於Ext.get()
現在爲什麼Ext.get()
有可言,
document.getElementById()
返回一個DOM元素,而Ext.get()
返回Ext
對象,它是容易對鏈接的目的。
這也是爲什麼jQuery有$("#elm_id")
。請注意,Ext.get()
也更容易輸入:)
Ext.get()
允許使用字符串ID,現有的HTMLElement或Ext.Element - 因此它更靈活一點。 document.getElementById()
只接受字符串ID。
也就是說,如果它符合您的需求,我只需使用document.getElementById()
。它本身就是瀏覽器,應該會更快一些 - 而且更不用說你用自己的鏈接來鏈接到一個特定的JavaScript框架。
我對Ext庫不熟悉,但是使用vanilla Javascript,只有少數幾種方法來獲取特定的元素;你可以通過它的ID來獲得它,在通過標籤名獲得所有元素後進行搜索(這是JQuery通過類名獲得元素的方式,我相信),或者,對於HTML5來說,通過類名獲取元素。如果你有創意,還有其他幾種方法;) 只要通過ID獲取它就是最快的,假設你沒有保存本地參考。
因此,如果你所要做的只是獲取一個元素而不用做任何Ext.js通過該函數調用,那麼vanilla Javascript會更快。
就性能而言,原生JS函數總是會更快。
不過,我不是說不能用JS庫,他們是偉大的,因爲他們:
- 編寫代碼
- 時減少時間它使你的代碼更易讀
- 你少寫代碼(減少文件大小和下載時間)
最後,也許你甚至可以節省時間,因爲更少的代碼意味着更快的下載速度,在某些情況下甚至可能會超過性能。因爲一方面你可以節省時間(「document.getElementById()」),另一方面可以減少文件大小和下載時間(「Ext 。得到()」)。
您可以同時使用和不應有任何明顯的差異。
由於其他人不知道這裏使用的方法取決於需要,如果你只是想獲得一個非ext目的的dom元素的引用,你可以使用本地函數,但如果你打算執行動作在Ext上下文中返回的對象上,那麼Ext.get會返回給你一個Element引用,它提供了額外的方法。
Ext.get是Ext.ComponentManager.get的簡寫,雖然它是對庫函數的調用,效率可能較低,但應該注意的是Ext.Element上有大約180個方法可用,所以如果您需要這些可能值得包括包裝調用。
正如owlness所提到的,當你需要在一個元素上執行單個函數時,Ext.fly()就被設計出來了,例如。 Ext.fly("myDiv").hide();
而Ext.get()當你需要一個機會到以後使用的元素,例如提及意。 var something = Ext.get("myDiv");
那麼也許something.sort(); something.badger(); return something;
- 1. 哪一個更好?
- 2. 哪一個更好?
- 3. 哪一個更好? 「var」或「DataType」?
- 4. Xamarin,Objective C或Phonegap哪一個更好?
- 5. Spring + CXF或Spring + Mule?哪一個更好?
- 6. 哪一個更好pushstate或location.hash?
- 7. DTD或XML Schema。哪一個更好?
- 8. 哪一個更好從DATE_FORMATE()或MONTH(),YEAR()
- 9. 哪一個更好JSkype或Skype4Java
- 10. TextView或WebView中哪一個更好?
- 11. Atom或RSS,哪一個更好
- 12. 哪一個更好的FCM或GCM?
- 13. 哪一個更好? URLReWriter.net或URLReWriting.NET
- 14. XMPP或HTTP。哪一個更好?
- 15. 哪一個更好:JPA或Hibernate註釋?
- 16. 哪一個更好:DMG或PackageMaker
- 17. WPF或GTK?哪一個更好
- 18. Rspec或Rake哪一個更好
- 19. 哪一個更好,OpenGL ES 2.0或OpenMAX?
- 20. Apache2:mod_wsgi或mod_python,哪一個更好?
- 21. 哪一個更好:mysql_connect或者mysql_pconnect
- 22. min或gzip,哪個更好?
- 23. 哪個更好? OpenCyc或ConceptNet?
- 24. 哪個更好,Nagios或Sensu?
- 25. jqGrid或dataTable,哪個更好?
- 26. PHP:ParseCSV或PHPExcel哪個更好?
- 27. DataTable或IList?哪個更好?
- 28. 哪個更好? city.state.id或city.state_id
- 29. PigServer或PigRunner?哪個更好?
- 30. 哪個更好H2或HSQLDB?
'的document.getElementById()== Ext.get()。dom' – Jaider 2013-06-06 18:14:31