大多数Facebook都是用PHP编写的,但有一些前端功能使用其他脚本语言。
Ticker(新闻Feed页面右上角的小方框显示最近的帖子等):
我猜测AJAX参与其中,但我想知道它是如何工作的。我在闪存中开发了类似(但更基本)的东西,其中闪存每毫秒(与实时一样)检查更新,但Facebook显然不使用闪存。
我知道数据可以通过AJAX来回传递,但他们如何才能立即实现?不断检查?
只是想知道
答案 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/