2012-01-02 6 views
2

は現在、私はやる:DOMが遅いと私がバックボーンにビューのリストを挿入すると、バックボーン内のビューのリストを追加すると、正しく

var jqGuestList = $("#guestList"); 
    jqGuestList.empty(); 

    items.each(function(item){ 
     var view = new wedapp.view.GuestItem({ 
      model: item, 
      collection: this.collection 
     }); 

     jqGuestList.append(view.render().el); 
    }); 

は、しかし、これは、手動で各1を加算し、痛みの私の多くを引き起こします地獄のように、特にモバイルでもデスクトップ上でさえ...

jqGuestList.html(views)にすべてのビューを挿入する方法はありますか?

答えて

5

あなたは、いくつかの改善を見るべきhttp://ejohn.org/blog/dom-documentfragments/

var jqGuestList = $("#guestList"); 
jqGuestList.empty(); 

var frag = document.createDocumentFragment(); 
items.each(function(item) { 
    var view=new wedapp.view.GuestItem({model:item}); 
    frag.appendChild(view.render().el); 
}); 

jqGuestList.append(frag); 

ドキュメント・フラグメントを使用することができます。

+0

そうですね、私はそれらについて疑問を抱いていました。あなたがノードを保存した場合、直接domに直接追加するよりも本当に速いですか? –

+0

ドキュメントから読むと、ブラウザからのリフローが1回だけ発生するようですが、確かに大きな改善です。 –

+0

これに関するいくつかの興味深い議論です。私は自分自身の利益を考えてきました。 [ドキュメントフラグメントを使用すると、実際にパフォーマンスが向上するのですか?](0120-18753) – jmk2142

関連する問題