如何同步两个浏览器

时间:2009-09-29 11:58:23

标签: javascript json synchronization

我有一点问题,因为我的WEB开发技巧不是最敏捷的,我希望你能帮助我。

问题在于我正在开发数字SCRUM任务板,其中一个核心功能是,打开相同项目任务板的浏览器必须显示相同的图片。因此,如果人A移动任务人员B应该在他的浏览器中看到这个,而不必手动刷新网页。

我知道毫秒同步是不可能的,因为这会破坏网络连接。但每30秒一次会很好。除非你能推送信息。

项目移动的表示不是问题,因为我可以很容易地使它眨眼。 我需要有关浏览器服务器通信的帮助。 B人的浏览器如何知道某些内容已被更改。它是否真的像拥有计时器一样简单,并且可以通过任意方式查询JSON服务以获取任何更改。或者有没有办法将更改推送到浏览器?

5 个答案:

答案 0 :(得分:10)

您想查看Comet

  

在网络开发中,Comet是一个   描述网络的新词   应用模型中长期持有   HTTP请求允许Web服务器   将数据推送到浏览器,没有   浏览器明确请求它。

这将为您提供您想要的即时响应。有几个JavasScript框架内置支持它 - 您选择的取决于您已经使用的内容,您对每个框架的熟悉程度等等。Dojo是我之前使用过的框架,并且它运行良好。

答案 1 :(得分:4)

实现这一目标有三种方法:

  • 短轮询:浏览器每x秒发送一次ajax请求并立即获得响应
  • 长轮询:浏览器发送ajax请求并等待响应而不超时,然后发送另一个请求
  • flash socket:使用flash app实现服务器端应用程序的持久性

答案 2 :(得分:0)

可以打开拉式连接,有效地允许您将内容推送到浏览器,但轮询的想法是最简单的。

您的民意调查只需要查看上次更新的时间,如果它比它知道的更新,那么它可以下载整个更新。

保持简单。你不会走得太远。

答案 3 :(得分:0)

假设A人移动任务意味着更改反映在数据库中,您只需设置一个JavaScript间隔(setInterval(function,timeInMs))来使用AJAX轮询后端脚本,这将返回新状态

答案 4 :(得分:-1)

是的,这是标准的AJAX练习 - A是'异步',这意味着您在后台触发XMLHttpRequest以检查状态,然后在必要时更新页面。

您无法“推送”到浏览器。