2

백본을 사용하여 모델 모음을 관리하는 단일 페이지 응용 프로그램이 있습니다.백본 : 단일 요청으로 모델을 일괄 적으로 저장 하시겠습니까?

때때로이 컬렉션이 상당히 커지며 사용자가 많은 변경 작업을 수행하면 .save가 많은 시간이 걸릴 수 있습니다. 어떤 경우에는 동시에 수백 개의 아약스 요청이 발생합니다.

백본은 이러한 작업을 일괄 적으로 요청할 수 있습니까? 또는 사용할 기본 패턴이 있습니까?

어떤 조언을 주셔서 감사합니다.

답변

5

Backbone.Collection에 대한 배치 작업을위한 기본 제공 방법이 없습니다. 공통적 인 패턴은 Backbone.Model에서 컬렉션을 랩핑하고 단순히 toJSON 메소드를 덮어 쓰는 것입니다. 그런 다음 다른 Backbone.Model처럼 이것을 처리하고 save()을 호출하면됩니다.

var Post = Backbone.Model.extend({ 
... 
}); 

var Posts = Backbone.Collection.extend({ 
    model: Post, 
    ... 
}); 

var PostsList = Backbone.Model.extend({ 
    url: '/path/for/bulk/operations', 

    toJSON: function() { 
    // the model in this case is the Posts collection 
    return this.model.toJSON(); 
    } 
}); 

또 다른 옵션은 단순히 Backbone.Sync에 수집 및 대리인에게

var Posts = Backbone.Collection.extend({ 
    ... 

    save: function(options) { 
    return Backbone.sync('create', this, options); 
    } 
}); 
+0

큰 감사, 잠재적 인 도로와 같은 두 소리를 save() 방법을 추가하는 것입니다 – Chris