我想重新加载页面,每隔5分钟刷新表中的数据。
不完全。您希望每五分钟重新加载一次数据,以便刷新页面中的表格。
你应该在你的视图的initialize
使用setTimeout
的地方,甚至是:
start_reloader: function() {
var _this = this;
this.timer = setTimeout(function() {
$.ajax({
// Load the data from your server...
success: function(data) {
_this.redraw_the_table(data);
_this.start_reloader();
}
});
}, 5*60*1000);
},
initialize: function() {
this.start_reloader();
}
然后你想要在你的remove
东西杀死计时器:
remove: function() {
if(this.timer)
clearTimeout(this.timer);
return Backbone.View.prototype.remove.apply(this);
}
您也可以使用setInterval
和clearInterval
,但如果AJAX调用中出现延迟,则可能会彼此堆叠(很小)。
您不必在当然的视图中管理它。设置一个模型或集合以每五分钟从服务器重新加载自己可能对您的情况更有意义;那么您的视图将像往常一样绑定到模型或集合的事件,并根据模型/集合中的'reset'
,'change'
,...事件重绘表格。
你是什么意思“它不会保存在表中的视图数据?”在刷新时,它应该从数据库中查找新的查看数据。 –
请参阅Q上面的更新 – dotNetNewbie