2012-01-02 7 views
2

В настоящее время, когда я вставляю список представлений в позвоночнике я:Добавление списка представлений в позвоночнике правильно

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); 
    }); 

Это, однако, вызывает мой большую боль, добавляя каждый вручную к DOM является медленным как черт, особенно на мобильных устройствах, но даже на рабочем столе.

Есть ли способ вставить все виды в один 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

Да, мне было интересно об этом, действительно ли это быстрее, чем добавлять в дом непосредственно, если вы сохранили узел? –

+0

Чтение из документа кажется, что он только запустит только один возврат из браузера, безусловно, большое улучшение. –

+0

Некоторые интересные обсуждения об этом. Мне было интересно узнать о преимуществах. [Использует ли фрагмент документа действительно повышение производительности] (http://stackoverflow.com/questions/14203196/does-using-a-document-fragment-really-improve-performance) – jmk2142