我在一個大量使用Ajax請求的網站上工作,該請求在DOM中構建基於選項卡的結構。我擔心的是,DOM將堆積如此多的選項卡和元素,以至於JQuery選擇器最終表現不佳。阻止jQuery遍歷文檔的部分
有沒有辦法維護一個大的DOM,但提供了一個「提示」排除某些部分。例如,我想維護DOM中的元素,但只有我的JQuery選擇器適用於活動選項卡。
我希望會有某種形式的「忽略」標籤的,我可以動態地應用到無源部分
也許是存儲在數據字典中的活動標籤元素的替代,並把他們進出的DOM,因爲它們成爲焦點。
我在一個大量使用Ajax請求的網站上工作,該請求在DOM中構建基於選項卡的結構。我擔心的是,DOM將堆積如此多的選項卡和元素,以至於JQuery選擇器最終表現不佳。阻止jQuery遍歷文檔的部分
有沒有辦法維護一個大的DOM,但提供了一個「提示」排除某些部分。例如,我想維護DOM中的元素,但只有我的JQuery選擇器適用於活動選項卡。
我希望會有某種形式的「忽略」標籤的,我可以動態地應用到無源部分
也許是存儲在數據字典中的活動標籤元素的替代,並把他們進出的DOM,因爲它們成爲焦點。
這是一個潛力解。我必須再去探索一下 – TGH 2012-04-22 23:55:42
只是提供一個選擇器,告訴jquery你想要什麼。例如,給每個標籤一個id
。然後,如果你想獲得的所有a
標籤在news
標籤:
$("#news a")
jQuery將隨後只知道在#news
看。
id
查詢通常非常有效,因爲只有一個元素可以有給定的id
。
不,這並不總是一種選擇,因爲某些選擇器可以在各個部分之間重複使用,而且我也沒有奢侈的提供這樣的粒度選擇器 – TGH 2012-04-22 23:49:24
如果您不喜歡不控制代碼,那麼你很可能不幸運。 – 2012-04-22 23:51:50
在您的選擇器上,您可以傳遞一個上下文作爲第二個參數來告訴jquery文檔的哪部分外觀,比如說:這樣可以減少要查找的節點數量。 參考:http://www.tvidesign.co.uk/blog/improve-your-jquery-25-excellent-tips.aspx#tip9
正如我在評論中說,你用你選擇的方式取決於你的代碼。但是,如果您最終選擇了一個巨大的選擇器列表,您可以隨時使用任何規則集合filter()
。
$elements.filter(function(){
return $(this).parent('.foo').length; // Only elements with parent `.foo`
});
由於元素的數量,關注點更多的是我將要處理的搜索時間 – TGH 2012-04-22 23:53:48
你能發表一些代碼嗎?這取決於你想要做什麼 – elclanrs 2012-04-22 23:47:19
這更多的是一個概念性問題。我正在尋找一種方法來標記DOM內容以被JQuery忽略 – TGH 2012-04-22 23:48:17
你所要求的答案基本上是 - 不!另一方面,如果它具有唯一標識符的結構,那麼javascript可以在它開始成爲問題之前處理一個相當大的DOM,而我的經驗是瀏覽器渲染在此之前就會成爲問題。 – adeneo 2012-04-22 23:56:32