Facebook的股票代码如何运作?

时间:2011-11-16 13:00:08

标签: php facebook

大多数Facebook都是用PHP编写的,但有一些前端功能使用其他脚本语言。

Ticker(新闻Feed页面右上角的小方框显示最近的帖子等):

我猜测AJAX参与其中,但我想知道它是如何工作的。我在闪存中开发了类似(但更基本)的东西,其中闪存每毫秒(与实时一样)检查更新,但Facebook显然不使用闪存。

我知道数据可以通过AJAX来回传递,但他们如何才能立即实现?不断检查?

只是想知道

3 个答案:

答案 0 :(得分:10)

他们正在使用长轮询

  • 正在向服务器发送请求
  • 请求在有新闻之前不会关闭连接
  • 一旦有新闻,脚本会关闭连接并且新闻可见

长轮询PHP脚本可能看起来像

$seconds = 1;
while($seconds < 60) { // browser can enforce one minute timeout
    $updates = get_updates();    //check for updates
    if ($updates) {
        echo $updates; // json encoded string
        die();
    }
    $seconds++;
    sleep(1);
}

答案 1 :(得分:1)

最有可能完成轮询(即你调用它时不断检查),尽管1毫秒过于频繁。我猜的是更多的秒数。

他们可能会记住当前新闻Feed中的最后一个对象,并且每n秒检索一次后输入的项目,并相应地更新页面。

答案 2 :(得分:0)

php中有一个连接池与gearman ..

您可以使用以下链接作为参考..

http://gonzalo123.wordpress.com/2010/11/01/database-connection-pooling-with-php-and-gearman/