我使用Firefug來剖析我的web應用程序,發現以下函數被調用,並且需要被調用,每次用戶訪問字面上數百次。所以我想優化它,因爲Firebug說它使用最多的資源/次數。JQuery:如何緩存DOM?
function highlightChildDiv(parentDiv) {
/* find the closest (hlisting) home listing to the middle of the scrollwindow & highlight */
var scrollElemPos = parentDiv.offset();
var highlightDiv = $(document.elementFromPoint(
scrollElemPos.left + parentDiv.width()/2,
scrollElemPos.top + parentDiv.height()/2)
).closest('#parentDiv div.childClass');
if (highlightDiv.hasClass("HighlightRow")) {
return; // if the div is already highlighted, return
} else {
$('#parentDiv div.childClass').removeClass("HighlightRow");
highlightDiv.addClass('HighlightRow');
}
}
在我看來,最未優化的語句之一是.closest('#parentDiv div.childClass');
,但我敢肯定有其他的事情,以改善。
問題:有沒有人有任何關於如何優化上面的代碼的任何JQuery性能提示,因爲這個函數每次用戶訪問幾乎執行數百次。
只是一個小點名稱,例如「父母」和「孩子」可能不會長期可讀:) – 2010-01-29 17:10:18
我更改了名稱以幫助人們更多地瞭解我的代碼在我的應用程序正在執行的情況下 – Allen 2010-01-29 17:15:51