骨干智能轮询

时间:2012-08-07 09:12:19

标签: javascript backbone.js long-polling marionette

为了保持更新Marionette.CompositeView(2)我实现了一个长轮询模块,如下所示(1)。

我想让这次投票变得更聪明 详细地说,我希望这个轮询不应该获取集合,而只检查新元素以避免再次渲染所有视图。
有任何想法吗?


(1)

define([
    'underscore'
], function (_) {
    "use strict";

    return {

        executePolling: function () {
            this.fetch({success : this.onFetch});
        },

        startPolling: function () {
            _.bindAll(this, 'onFetch', 'executePolling');
            this.minutes = 1;
            this.polling = true;
            this.executePolling();
        },

        stopPolling: function () {
            this.polling = false;
        },

        onFetch: function () {
            if (this.polling) {
                setTimeout(this.executePolling, 1000 * 60 * this.minutes);
            }
        }
    };

});

(2)

define([
    'underscore'
], function (_) {
    "use strict";

    return Marionette.CompositeView.extend({
        initialize: function () {
            this.collection.startPolling();
        }
        // some code.
    });
});

0 个答案:

没有答案