的假設你有一個具有兩個功能Django視圖:比較兩個大集合屬性
第一個函數使用XSLT樣式表使一些XML,併產生一個div 1000級的子元素是這樣的:
<div id="myText">
<p id="p1"><a class="note-p1" href="#" style="display:none" target="bot">✽</a></strong>Lorem ipsum</p>
<p id="p2"><a class="note-p2" href="#" style="display:none" target="bot">✽</a></strong>Foo bar</p>
<p id="p3"><a class="note-p3" href="#" style="display:none" target="bot">✽</a></strong>Chocolate peanut butter</p>
(etc for 1000 lines)
<p id="p1000"><a class="note-p1000" href="#" style="display:none" target="bot">✽</a></strong>Go Yankees!</p>
</div>
<div id="myNotes">
<p id="n1"><cite class="note-p1"><sup>1</sup><span>Trololo</span></cite></p>
<p id="n2"><cite class="note-p1"><sup>2</sup><span>Trololo</span></cite></p>
<p id="n3"><cite class="note-p2"><sup>3</sup><span>lololo</span></cite></p>
(etc for n lines)
<p id="n"><cite class="note-p885"><sup>n</sup><span>lololo</span></cite></p>
</div>
我需要看到哪些元素在#myText具有類:
第二功能使用另一樣式表,以產生這樣一個div呈現另一個XML文檔與#myNotes中的元素匹配並顯示它們。我可以使用下面的jQuery的做到這一點:
$('#myText').find('a').each(function() {
var $anchor = $(this);
$('#myNotes').find('cite').each(function() {
if($(this).attr('class') == $anchor.attr('class')) {
$anchor.show();
});
});
然而,這是一個大量的比較令人難以置信的緩慢和低效。存在是合理的大量項目的一個jQuery/js的方法 -
什麼是最快/最有效的方式做到這一點?或者是否需要重新構造Django代碼才能將其傳遞到模板?
多德...這就是我的回答,我給11小時以前只是一個詳細的重構,但有一個附加'如果()'聲明。 – user113716 2010-06-11 11:43:41