backbone.js を使用して、コレクションがあるとします -- アルバム
var albums_collection = new Backbone.Collection([
{artist:"dell the funky homosapien"},
{artist:"raffe"},
{artist:"wilson philips"},
{artist:"eddie murply"},
{artist:"jordotech"}
]);
および対応するビュー
AlbumView = Backbone.View.extend({
render: function(){
$(this.el).html(this.model.get('artist') + "<br />");
return this;
}
});
たとえば、これら 4 枚のアルバムだけでなく、10,000 枚のアルバムがあり、それらすべてをレンダリングしたいとします。ほとんどのバックボーン チュートリアルでは、コレクションをループして 1 つずつ dom に追加する必要があると述べています。
album_colleciton.each(addOne);
addOne:function(model){
var view = new AlbumView({model:model});
$("#albums_container").append(view.render().el):
}
ただし、このように DOM に 1 つずつ書き込むと、実際にはパフォーマンスが低下する可能性があることに気付きました...これらのそれぞれをおそらく配列に保存して、一度に一括更新する方法はありますか? 私はもう試した:
var arr = [];
_.each(this.collection.models, function(model){
var view = new AlbumView({model:model});
arr.push(view.render().el);
});
$("#albumbs_view").html(arr.join(''));
しかし、上記の結果、一連の「HTMLdivElement」がレンダリングされます。この場合、1000 ではなく 1 つだけにする方法はありますか?