setInterval
呼び出し (コレクション内)に呼び出しを追加していますがfetch
、意図しない副作用が発生しました。コレクションを呼び出しているビューは次のとおりです。
define([
'jquery',
'underscore',
'backbone',
'models/tableModel',
'collections/tablesCollection',
'views/tableView'
],
function($, _, Backbone, tableModel, tablesCollection, tableView) {
var tablesView = Backbone.View.extend({
tagName: 'div',
initialize: function(options) {
this.collection.on('reset', this.render, this);
this.template = this.options.template;
this.url = this.options.url;
},
render: function() {
this.collection.each(this.addOne, this);
return this;
},
addOne: function(model) {
var TableView = new tableView({ model: model, template: this.template, url: this.url });
$(this.$el).append(TableView.render().el);
return this;
}
});
return tablesView;
});
ご覧のとおり、このビューはコレクションを反復処理し、各リードを DOM に追加します。これが私が望んでいることです。しかし、setInterval
それを呼び出すと、コレクションがフェッチされるたびにこれが行われます。これは私が望んでいるものですがappend
、アイテムが既にDOMにあるかどうかを確認するために、の前に行を追加したいと考えています。model.get('id')
おそらく使用してDOMと比較できると思いました。これは最善のアプローチですか?もしそうなら、どうすればいいですか?