我想每 5 分钟刷新一次页面以刷新表中的数据。
不完全的。您希望每五分钟重新加载一次数据,以便您可以刷新页面中的表格。
您应该setTimeout
在某个地方使用,甚至可能在您的视图中initialize
:
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'
, ... 事件。