代码之家  ›  专栏  ›  技术社区  ›  Dejan

如何同步两个浏览器

  •  3
  • Dejan  · 技术社区  · 17 年前

    我有一个小问题,因为我的网络开发技能不是最敏锐的,我希望你能帮助我。

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

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

    物品移动的表示不是问题,因为我可以很容易地使它闪烁。 我需要有关浏览器服务器通信的帮助 . 用户B的浏览器如何知道某些内容已更改。它是否真的像拥有一个计时器并愚蠢地查询JSON服务以获取任何更改那样简单。或者有没有办法将更改推送到浏览器?

    5 回复  |  直到 9 年前
        1
  •  11
  •   D'Arcy Rittich    17 年前

    Comet .

    在web开发中,Comet是一种 应用程序模型,其中 HTTP请求允许web服务器 将数据推送到浏览器,而不使用 浏览器显式请求它。

    Dojo 这是我以前用过的,效果很好。

        2
  •  4
  •   Anatoliy    17 年前

    有三种方法可以实现这一点:

    • 短轮询:浏览器每x秒发送一次ajax请求,并立即得到响应
    • 长轮询:浏览器在不超时的情况下发送ajax请求和等待响应,然后发送另一个请求
    • FlashSocket:使用FlashApp实现服务器端应用程序的持久化
        3
  •  0
  •   davewasthere    17 年前

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

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

        4
  •  0
  •   code_burgar    17 年前

    假设某人移动任务意味着更改反映在数据库中,则只需设置JavaScript间隔(setInterval(function,timeInMs))即可使用AJAX轮询将返回新状态的后端脚本。

        5
  •  -1
  •   JBRWilkinson    17 年前

    是的,这是标准的AJAX实践——A是“异步的”,这意味着您在后台启动一个XMLHttpRequest来检查状态,然后在必要时更新页面。

    您不能“推”到浏览器。