Facebook的股票代码如何运作?

6 php facebook

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

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

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

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

就是想

Mar*_*in. 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);
}
Run Code Online (Sandbox Code Playgroud)

  • @Nav:它确保您每秒仅轮询一次数据库.它只是睡了一秒钟,如文档中所述 (2认同)