我正在使用jquery ui和jqgrid在我正在使用的應用程序中使用相當多。在我看到的大多數例子中,這些控件都是通過使用jquery選擇器訪問 id: $("#elementid")
來查找元素的。jQuery - 性能訪問元素
我的問題是,它的jQuery提供良好的性能足以一遍又一遍地做這個或者是更好的做法,以保存對元素的引用,當他們第一次訪問: var elementName = $("#elementid");
和重用的參考呢?
我正在使用jquery ui和jqgrid在我正在使用的應用程序中使用相當多。在我看到的大多數例子中,這些控件都是通過使用jquery選擇器訪問 id: $("#elementid")
來查找元素的。jQuery - 性能訪問元素
我的問題是,它的jQuery提供良好的性能足以一遍又一遍地做這個或者是更好的做法,以保存對元素的引用,當他們第一次訪問: var elementName = $("#elementid");
和重用的參考呢?
使用JQuery for ID與Javascript中的getElementById()相同。
正如你可以閱讀here使用直接引用比在DOM樹中每次搜索都快得到你的對象。
IE8的getElementById:0.4844毫秒 ,IE8 ID陣列查找:0.0062毫秒
鉻的getElementById:0.0039毫秒 ,鉻ID陣列查找:0.0006毫秒
這些是10的結果000得到。要查看基準的整個代碼,請單擊鏈接。
定義和重用變量可能速度稍快,可能被認爲是「最佳實踐」,但$('#id')
映射到本地Element.getElementById
這絕對是對於大多數應用足夠快。即使您對數千次查詢進行了測試,您也不會在人類頭腦中看到明顯的差異。
我想說這是編碼風格的問題。
其實Jquery最好的做法是緩存引用。每次潛入DOM都是昂貴的,正如我們從SO創始人之一得知的那樣performance is a feature。你可以在jQuery Fundamentals
中查看jQuery的最佳實踐variery 10.000查找的半毫秒不算作我的世界中的性能增益,但該決定完全取決於作者:) – David
那麼這是數學。你對號碼的處理是我認爲的;) –
對於我的目的而言,我覺得這不是什麼大問題,它可以幫助我避免亂拋我的代碼和全局變量以引用一些元素。謝謝。 – zaq