当有人发布内容时,Facebook如何更新内容

时间:2012-03-06 15:07:25

标签: php ajax

我真的很感兴趣的是facebook在其他人发布内容时如何仅加载内容。我唯一能想到的就是使用下面的内容来不断更新页面而不重新加载页面。

setInterval(ajax_stuff, 1000);

我正在观看控制台,确实发生了请求,并在页面中添加了另一个新内容。

enter image description here

我想要了解这是如何完成的。如果我可以在项目中使用它,那真的很棒。我的意思是每秒做setInterval确实消耗了很多资源。仅在需要时才提出请求是最好的做事方式。具体来说,我想在这个项目中使用它:

https://github.com/anchetaWern/ChatRo

它基本上只是一个聊天框,目前它仍然使用setInterval()。我想在聊天会话中的其他人实际输入内容时仅更新内容。

2 个答案:

答案 0 :(得分:2)

我不能直接谈论FaceBook如何做到这一点,但一般来说,你应该看看WebSockets。

WebSockets 允许页面上的JavaScript与服务器保持开放连接,从而可以近乎实时地将数据推送到连接到服务器的所有客户端。

查看http://pusher.com

此外,谷歌网络套接字。

答案 1 :(得分:1)

如果您正在向最终用户寻找自己(非Windows)服务器上的内容,那么还要查看APE project。使用彗星使用SSJS是OpenSource。

请注意,它仍然使用Apache和您正常的LAMP设置,因此无需使用专用计算机或VPS来托管它。

我也不知道Facebook是怎么做的,但APE听起来确实是一个不错的选择。

我只用了一分钟左右的谷歌搜索,因为你的问题让我感兴趣,我没有使用或测试它,但作为一个免费的工具,在你自己的服务器上,它绝对值得一看。

另外作为一个注释,我确实发现葡萄牙语的评论抱怨它不能与Windows服务器一起使用,这在文档中有说明。

祝你好运,如果你决定试一试,我会对它的发展感兴趣!

相关问题