2012-06-14 31 views

Trả lời

4

Tôi đoán nó phụ thuộc vào các tình huống sử dụng của bạn và số tiền bạn muốn thay đổi mã gọi. Tôi nghĩ rằng bạn có hai lựa chọn:

Lựa chọn 1: Không thay đổi cho khách hàng (gọi) mã

Lạ lùng thay các chú thích source for Backbone.sync cho 'trộn' như một lý do có thể cho trọng các sync phương pháp:

Sử dụng setTimeout để cập nhật hàng loạt các bản cập nhật nhanh chóng thành một yêu cầu duy nhất.

Thay vì thực sự lưu trên đồng bộ, thêm yêu cầu vào hàng đợi và chỉ lưu hàng loạt thường xuyên. _.throttle hoặc _.delay có thể giúp bạn ở đây.

Lựa chọn 2: Thay đổi mã khách hàng

Ngoài ra, thay vì gọi save trên mô hình của bạn, bạn có thể thêm một số loại save phương pháp để các bộ sưu tập. Bạn sẽ phải theo dõi các mô hình nào đã được sửa đổi và do đó cần cập nhật, vì theo như tôi có thể nói, Backbone chỉ biết liệu chúng có mới hay không (nhưng tôi có thể sai về điều đó).

+0

Nếu tôi sử dụng '_.throttle' hoặc' _.delay', làm cách nào để gửi nhiều 'cập nhật' trong một yêu cầu ajax? mảng các mô hình? – Henry

+1

Có nhiều cách khác nhau và thực sự nó phụ thuộc vào mẫu truy cập dữ liệu của bạn. Có một cuộc thảo luận ở đây: http://stackoverflow.com/questions/411462/restful-way-to-create-multiple-items-in-one-request – stusmith

1

Đây là cách tôi đã làm nó

Backbone.originalSync = Backbone.sync; 

Backbone.sync = function (method, model, options) { 
    // 
    // code to extend sync 
    // 

    // calling original sync 
    Backbone.originalSync(method, model, options); 
} 

hoạt động tốt đối với tôi, và tôi sử dụng nó để kiểm soát mọi yêu cầu ajax sắp ra của bất kỳ mô hình hoặc bộ sưu tập

Các vấn đề liên quan