看板 Ajax 關於我們 聯絡資訊
※ 引述《DRLai (蘇打)》之銘言: : <script> : $(document).ready(function(){ : $("#test").children("div").each(function(){ : $("#debug").append("I got "+$(this).attr("id")+"<br/>"); : }); : }); 如果 #test 下面很多 div,要快的話就是先累積再一次插入: $(function(){ var t = ''; $('#test > div').each(function(){ t += 'I got ' + $(this).attr('id') + '<br/>'; }); $('#debug').append(t); }); 這樣可以節省 browser redraw 時間。 另外還有 string concat 的問題 (不知道現在新的 browser 還需不需要在意這個), 可以用 array + join 處理: $(function(){ var t = []; $('#test > div').each(function(){ t.push('I got ' + $(this).attr('id') + '<br/>'); }); $('#debug').append(t.join('')); }); -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 210.242.135.97 ※ 編輯: DarkKiller 來自: 210.242.135.97 (08/06 00:14)
TonyQ:@DK 最近幾次的測試報告看起來 concat 的問題好很多了 08/06 08:22
TonyQ: 甚至還有直接加起來比 array join 還快的案例, 08/06 08:22
TonyQ: 真不知道底層怎麼做的。XD 08/06 08:23
TonyQ: stackoverflow 上有相關討論 08/06 08:23
Crow22312:concat 比較快應該有一陣子了, 只是商業上多半會想支援 08/06 09:05
Crow22312:IE6, 它又最慢, 所以會用 (IE6 中較快的) array join 08/06 09:06
Crow22312:逐漸擺脫 IE6 陰影以後用 concat 的確會是比較好的選擇 08/06 09:07
TonyQ:卡就卡在,很難說是 test-case 的問題(有可能跑到最佳情況 08/06 15:27
TonyQ:還是常態來講都是這樣,這年頭 browser optimize 到很難作 08/06 15:27
TonyQ:perf benchmark。 08/06 15:28
senser:loop的時間不會差太多 差是在append的方法 08/07 12:09
senser:可以參考http://ejohn.org/blog/dom-documentfragments/ 08/07 12:09