2011-04-16 30 views
1

我有一个应用程序,其中的项目可以由多个用户进行编辑。当有人编辑一个项目时,其他人必须重新加载页面才能看到更改。如何知道某人编辑某件物品时是否可以为其他人刷新该物品。如何在其他用户编辑它时重新加载网页?

所以说,鲍勃是在佛罗里达州和网站编辑的项目。直到她重新加载页面之前,西雅图的Jill才看到变化。当鲍勃编辑它时,我该如何刷新吉尔的物品?

我使用的轨道,jQuery的,在Heroku的PostgreSQL。

编辑:如果一个页面有200个项目,我宁愿不经常检查,看看他们每个人都有改变。

回答

1

你必须要么请求,服务器将定期与$就来检查,如果该项目在页面加载后修改,或使用comet

+0

我希望有一个简单的方法做做什么彗星。如果一个页面有200个项目,我不想经常检查它们是否每个都改变了。 – Dan 2011-04-16 18:45:53

+0

您发送到服务器页面加载时间 - 并且服务器发回更改的对象。 – glebtv 2011-04-16 20:06:47

0

你说的是知道什么为具有从服务器,而无需重新加载页面发送和接收数据包的能力的Ajax(异步JavaScript)。幸运的是,对于AJAX,Rails具有内置的功能。我发现this是一个非常好的教程。此外,目前我还找不到它,但是有一个非常好的屏幕截图,展示了如何在rails上使用ruby创建博客,并且还涵盖了AJAX。

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是检查是否有一定的pageid必须重新加载脚本的URL。 5000个代表“再次检查每5秒”

相关问题