Skip to content

A simple plugin to give poll capabilities to backbone collections and models that uses a refresh rate to actively fetch data and keep the collection or model updated. In other words, it gives a backbone collection or model the ability to periodically query a data source. Useful for fetching dynamic data for monitoring.

License

Notifications You must be signed in to change notification settings

pedrocatre/backbone-polling

Folders and files

NameName
Last commit message
Last commit date
Jan 16, 2014
Jan 16, 2014
Jan 16, 2014
Jan 16, 2014
Jan 15, 2014
Dec 14, 2013
Jan 2, 2014
Jan 2, 2014
Jan 2, 2014
Dec 11, 2013
Jan 15, 2014
Jan 14, 2014

Repository files navigation

Backbone-Polling

Build Status

A simple plugin to give poll capabilities to backbone collections and models that uses a refresh rate to actively fetch data and keep the collection or model updated. In other words, it gives a backbone collection or model the ability to periodically query a data source. Useful for fetching dynamic data for monitoring.

Source Code And Downloads

Development: backbone-polling.js

Production: backbone-polling.min.js

Basic Demo

http://aqueous-badlands-8314.herokuapp.com

Dependencies

This plugin uses backbone (v1.0.0 or above) , jQuery (v1.10.2 or above) and underscore (version 1.3.3 or above).

Usage

One possible usage is to create a backbone collection (or model) and add the plugin as a mixin.

  • Example without AMD
var ProcessCollection = Backbone.Collection.extend({
    url: '/processes',
});

// Add backbone polling mixin
_.extend(ProcessCollection.prototype, BackbonePolling);
  • Example with AMD
define([
    'backbone',
    'underscore',
    'backbonePolling',
], function (Backbone, _, BackbonePolling) {
    'use strict';

    var ProcessCollection = Backbone.Collection.extend({
        url: '/processes',
    });

    // Add backbone polling mixin
    _.extend(ProcessCollection.prototype, BackbonePolling);

    return ProcessCollection;
});

Simply Instantiate and start fetching:

var processCollection = new ProcessCollection();
processCollection.startFetching();

Or pass in some options first:

var pollOptions = { refresh: 2000 };
var processCollection = new ProcessCollection();

// Specify custom options for the plugin.
// You can also call this function inside the collection's initialize function and pass the
// options for the plugin when instantiating a new collection.
processCollection.configure(pollOptions);
processCollection.startFetching();

Configuration Options

An object can be used to customize the plugin’s behavior. All configurations are optional.

var options = {
    refresh: 1000,                 // rate at which the plugin fetches data
    fetchOptions: {},              // options for the fetch request
    retryRequestOnFetchFail: true  // automatically retry request on fetch failure
}
  • refresh: refresh rate in milliseconds. Default value is 1000 milliseconds.
  • fetchOptions: to be passed in the collection.fetch() request (same options as the backbone collection’s fetch method).
  • retryRequestOnFetchFail: specify if the plugin should retry the request if fails or if it should simply stop fetching data.

Events

  • refresh:loaded: is triggered every time a fetch/refresh finishes successfully.
  • refresh:fail: is triggered every time a fetch request fails.
  • refresh:always: is triggered every time a fetch request finishes.

Methods

  • configure(options): specify custom options for the plugin
  • startFetching: starts polling data from the server.
  • stopFetching: stops fetching data from the server.
  • isFetching: returns true if the collection is fetching data and false otherwise.

License

The code in this repository can be used under the MIT License.

About

A simple plugin to give poll capabilities to backbone collections and models that uses a refresh rate to actively fetch data and keep the collection or model updated. In other words, it gives a backbone collection or model the ability to periodically query a data source. Useful for fetching dynamic data for monitoring.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published