如何根据用户操作更新内容

对于我的下一个应用程序,我想实现一些具有facebook墙function的东西,但让我解释一下。 对于那些使用过facebook的人,你知道当有人在你的墙上发布消息,并且你登录到你的账户时,你会立即在左下角的某个地方收到通知。 最近他们甚至推动了这一点,如果有人评论它,评论会在您可视化页面时更新,就像即时聊天一样。

我的应用程序将用PHP开发,我将使用Zend Framework来完成它。 我对基本原理感兴趣,这使得facebook墙表现得像那样(实时更新)。 我知道有ajax涉及但我无法确定当用户做某事时javascript是如何触发的。 甚至更多,如何将用户查看页面后添加的一些信息推回给用户。 例如,假设有人将我添加为朋友。 如果我已登录,我希望看到“X已将您添加为朋友”的通知。我希望您了解我正在尝试做的事情。 如果你能告诉我一些基本的想法,也许提供一些有这些信息的链接,我将非常感激。

感谢您抽出宝贵时间阅读本文。

你需要看看彗星 , 逆转ajax , ajax民意调查

  1. 如果触发了某个事件,则将事件存储在数据库中(使用ajax或不使用ajax)。

  2. 您将需要服务器中的脚本来检查是否已触发某些事件。 此脚本应该能够检查存储在数据库中的事件。

  3. 您需要定期在步骤2中执行脚本。 这可以通过ajax(javascript或jquery)和函数settimeout (在javascript上)来实现,以定期向服务器发送ajax请求。

  4. 更改从服务器发送。 因此,使用javascipt和jquery解析响应和页面更新。

所以,它可以概括为

  1. 注册活动(适用于一个用户)

  2. 检查事件(对于其他用户)

  3. 解析响应并更新页面

有几种优雅的方法可以做到这一点,正如其他人的回答。

最好的方法是启动项目并寻求帮助。

保持HTTP连接打开只是部分可能,因此最好的选择可能是轮询更改。 您可以每秒发送一个请求,以查看自“x”时间以来是否有任何更改。 在每个响应中,您将沿服务器时间发送。 使用新请求,您可以发送旧请求的时间,服务器可以返回中间发生的任何事件。

您也可以阅读有关AMQP的内容 。 您可以向收件人inboxes发送消息(在系统中执行某些操作后),然后在启动后或以某个时间间隔读取inboxes