实时更新文本块

时间:2011-03-24 02:13:26

标签: php javascript jquery

我正在尝试找出在两个不同用户之间进行文本字段实时更新的最佳方法。我做了一些谷歌搜索,我能找到的是setInterval。

虽然有效但却非常直接,看起来像是“错误”的方式。我不知道为什么会这样,但我觉得比每100ms左右更新一次setInterval更有效。

有比使用setInterval更好的方法吗?两个用户之间更新的最佳方式是什么? 感谢您的帮助或指导我朝着正确的方向前进。

编辑 -

这是我如何侵略它 Path of data http://img.zobgib.com/2011-03-23_2231.png

该信息也可以来自comp 2 - > 1当然是合作。

3 个答案:

答案 0 :(得分:1)

打开每个用户的彗星连接(反向ajax,谷歌)。然后每当用户改变某事时:

用户A - > Ajax的 - >服务器 - >彗星 - >用户B

答案 1 :(得分:1)

您可以在PHP中进行长轮询,例如....

set_time_limit(0);

while (TRUE) {

  $results = Db::query('SELECT `message` FROM `messages` WHERE `modified` > :modified', array(':modified' => $modified));

  if ($results) {
     echo json_encode($results);
     exit;
  }

  sleep(5);

}

假设您将状态存储在数据库中。

注意

这只是在进行长轮询的表面,请先对其进行广泛的研究,包括服务器配置。

答案 2 :(得分:1)

如果您不怕HTML5并且都使用HTML5兼容的浏览器,您可以使用php(phpwebsocket)构建一个websocket服务器。在项目中使用它,它是未来:)