At this point, we have a pretty decent application. We can create events that show up in our table. We can update and remove these events as well. However, if multiple people are using the same table of events, we might want to regularly poll the server for changes to the dataset. This way, someone could leave the page open, like a dashboard of sorts, and it would always be up to date.
This feature sounds like it might be tricky to implement, but it's actually much easier than you think. The first step is to go to the model.js
file, and extend our Events
collection by adding these methods to it:
initialize: function (models, options) { this.wait = (options && options.wait) || 10000; }, refresh: function () { this.fetch(); setTimeout(this.refresh.bind(this), this.wait); }
The refresh
method is the important one here. Mainly, we're calling the collection's fetch
method. This will get the set of models from the server and set them as the model for collection. However...