如何在其他用户编辑网页时重新加载网页?

时间:2011-04-16 18:35:04

标签: jquery ruby-on-rails ajax

我有一个应用程序,可以由多个用户编辑项目。当有人编辑项目时,其他人必须重新加载页面才能看到更改。我怎么知道有人编辑某个项目以便我可以为其他人刷新该项目。

所以说鲍勃在佛罗里达州并且在网站上编辑了一个项目。西雅图的吉尔特在重新加载页面之前看不到变化。当Bob编辑它时,如何刷新Jill的项目?

我在heroku上使用rails,jquery,postgresql。

编辑:如果一个页面有200个项目,我宁愿不经常检查它们是否每个都有变化。

4 个答案:

答案 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,这是非常强大的

http://api.jquery.com/jQuery.ajax/