我有一个应用程序,其中的项目可以由多个用户进行编辑。当有人编辑一个项目时,其他人必须重新加载页面才能看到更改。如何知道某人编辑某件物品时是否可以为其他人刷新该物品。如何在其他用户编辑它时重新加载网页?
所以说,鲍勃是在佛罗里达州和网站编辑的项目。直到她重新加载页面之前,西雅图的Jill才看到变化。当鲍勃编辑它时,我该如何刷新吉尔的物品?
我使用的轨道,jQuery的,在Heroku的PostgreSQL。
编辑:如果一个页面有200个项目,我宁愿不经常检查,看看他们每个人都有改变。
我有一个应用程序,其中的项目可以由多个用户进行编辑。当有人编辑一个项目时,其他人必须重新加载页面才能看到更改。如何知道某人编辑某件物品时是否可以为其他人刷新该物品。如何在其他用户编辑它时重新加载网页?
所以说,鲍勃是在佛罗里达州和网站编辑的项目。直到她重新加载页面之前,西雅图的Jill才看到变化。当鲍勃编辑它时,我该如何刷新吉尔的物品?
我使用的轨道,jQuery的,在Heroku的PostgreSQL。
编辑:如果一个页面有200个项目,我宁愿不经常检查,看看他们每个人都有改变。
你必须要么请求,服务器将定期与$就来检查,如果该项目在页面加载后修改,或使用comet
你说的是知道什么为具有从服务器,而无需重新加载页面发送和接收数据包的能力的Ajax(异步JavaScript)。幸运的是,对于AJAX,Rails具有内置的功能。我发现this是一个非常好的教程。此外,目前我还找不到它,但是有一个非常好的屏幕截图,展示了如何在rails上使用ruby创建博客,并且还涵盖了AJAX。
可以使脚本返回“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秒”
你可以开始玩了jQuery的阿贾克斯,这是非常强大的
我希望有一个简单的方法做做什么彗星。如果一个页面有200个项目,我不想经常检查它们是否每个都改变了。 – Dan 2011-04-16 18:45:53
您发送到服务器页面加载时间 - 并且服务器发回更改的对象。 – glebtv 2011-04-16 20:06:47