我有一个应用程序,可以由多个用户编辑项目。当有人编辑项目时,其他人必须重新加载页面才能看到更改。我怎么知道有人编辑某个项目以便我可以为其他人刷新该项目。
所以说鲍勃在佛罗里达州并且在网站上编辑了一个项目。西雅图的吉尔特在重新加载页面之前看不到变化。当Bob编辑它时,如何刷新Jill的项目?
我在heroku上使用rails,jquery,postgresql。
编辑:如果一个页面有200个项目,我宁愿不经常检查它们是否每个都有变化。
答案 0 :(得分:1)
您必须定期使用$ .ajax请求服务器以检查项目是否在页面加载后被修改,或者使用comet
答案 1 :(得分:0)
你所说的是Ajax(异步javascript),它能够在不重新加载页面的情况下从服务器发送和接收数据包。幸运的是,rails具有AJAX的内置功能。我发现this是一个非常好的教程。此外,我目前无法找到它,但是有一个非常好的截屏视频,它展示了如何在轨道上制作带有ruby的博客,它还涵盖了AJAX。
答案 2 :(得分:0)
您可以创建一个脚本,当页面发生变化时返回“1”,如果没有则返回“0”。然后你用jquery做这样的事情:
setInterval(function() {
$.ajax({
'url': 'url_to_check',
'method': 'GET',
'data': {
'pageid': pageidhere
},
'success':function(data) {
if (data == '1') {
location.reload();
}
}
});
}, 5000);
其中url_to_check是脚本的url,用于检查是否必须重新加载某个pageid。 5000代表“每5秒再次检查”
答案 3 :(得分:0)
你可以开始玩jquery ajax,这是非常强大的