我想重新加載頁面,每隔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