我有一个Person
模型,其位置每隔几秒钟就会从移动应用程序中更新一次并保存到数据库中。现在,我想在视图中访问更新的信息,而无需重新呈现整个页面。
我该怎么做?
我想做这样的事情
setInterval(function(){
// display updated data
}, 5000);
p.s .:我仅在时间间隔内使用JavaScript,这是一个Rails问题。
每隔几秒钟重新加载页面即可,但是完全杀死了我想做的事情。
答案 0 :(得分:0)
使用ajax请求获取数据。假设您要更新的div
的ID为current-location
,您可以执行...
setInterval(function() {
$.ajax({
type: 'POST',
url: "/people/<%=@person.id%>/get_location",
success: function(data) {
$('#current-location').html(data.location);
}
});
}, 5000);
在routes.rb中定义一个成员路径
resources :people
member do
post :get_location
end
end
然后在您的PeopleController中创建一个名为get_location
的操作,并确保最后一行类似于...
person_location = get_location # some method that returns location
render json: {location: person_location}