目前正在使用ajax进行第一个实现,我正在努力。
我想在已经呈现的页面上定期更新某些值。
控制器
def something
@var1 = 1
@var2 = 2
render :json => { :var1 = @var1, :var2 = @var2 }
end
视图当前如下所示:
:javascript
var result = jQuery.getJSON( '/admin/tours/cc_dashboard_json', function(json) {
var variables = JSON.parse(result);
});
.container
.row
.span4
%table
%tr
%h3= @var1 #used to just reload the page manually and here the
%h3= @var2 #vars used to show up
json 请求的结果:
{ "var1":1,"var2":2 }
我想要什么?
我希望 var1 和 var2 每 x 秒更新一次,其中包含来自 ajax 请求的数据。所以我需要 js 每 x 秒请求一次数据,然后更新变量。
您可以使用 window.setInterval 来实现此目的。
根据 MDN setInterval 将:
调用函数或重复执行代码片段,具有固定的 每次调用该函数之间的时间延迟。
您也可以在页面加载后运行该函数,然后让间隔接管,如下所示:
(function(){
var start = function() {
alert("Interval");
};
window.setInterval(start, 10000); //every 10 seconds
start();
})();