extend Backbone.sync to batch sync?

backbone.js

Solution

I guess it depends on your usage scenarios, and how much you want to change the calling code. I think you have two options:

Option 1: No Change to client (calling) code

Oddly enough the annotated source for Backbone.sync gives 'batching' as a possible reason for overriding the `sync` method:

Use setTimeout to batch rapid-fire updates into a single request.

Instead of actually saving on sync, add the request to a queue, and only batch-save every so often. `_.throttle` or `_.delay` might help you here.

Option 2: Change client code

Alternatively, instead of calling `save` on your models, you could add some sort of `save` method to collections. You'd have to track which models were actually modified and hence in need of update, since as far as I can tell, Backbone only knows whether they're new or not (but I could be wrong about that).

Problem

What technique shall one use to implement batch insert/update for Backbone.sync?

Original source

Related problems