实时显示在其他在线用户上吗? - php

Facebook如何处理其“实时”数据?如果您正在查看自己的活动供稿,并且用户喜欢某件事,则可以立即看到文字更改,表明该用户喜欢它,或者当收到通知时,您会在页面上看到红色的通知符号,而无需刷新。

我知道这段代码可以推送数据而无需刷新:

$.post('ajax/test.html', function(data) {
  $('.result').html(data);
});

但是有人可以解释如何推送实时数据,以便其他用户可以在页面上看到更新而无需刷新。

谢谢

参考方案

可以使用具有多种名称的各种技术来实现此目的:长轮询,服务器发送事件,Comet,WebSocket等。

基本思路是这样的:

爱丽丝打开脸书。她的浏览器发出更新请求(例如$.get),但是如果没有新的更新并且请求仍处于“等待”状态,则服务器不响应。
鲍勃打开facebook。他决定在爱丽丝的墙上发表评论。他的浏览器将他的评论发布到服务器($.post)。

服务器接受此帖子,并对其进行正确处理(保存在Alice的墙上等)
但是ALSO服务器会检查是否有来自Alice的等待更新请求。如果存在,服务器会将有关此更新的信息呈现到响应流中并关闭连接。

爱丽丝的浏览器最终得到了对此长期挂起请求的响应,并在通知区域中愉快地绘制了红色的“ 1”。它还会立即打开另一个更新请求(不要错过任何更新请求)。
爱丽丝(Alice)看到鲍勃(Bob)的评论,该评论立即传达。

所描述的技术称为“长时间轮询”,最早是由Google在Gmail中引入的。

PHP getallheaders替代 - php

我正在尝试从服务器上的apache切换到nginx。唯一的问题是我在PHP脚本中使用的getallheaders()函数,该函数不适用于Nginx。我已经尝试过用户在getallheaders函数上的php站点上提供的注释,但这并不返回所有请求标头。请告诉我如何解决这个问题。我真的想切换到Nginx。 参考方案 您仍然可以使用它,但是您必须像这里一样重新定义…

php Singleton类实例将在多个会话中保留吗? - php

举一个简单的例子,如果我想计算一个不使用磁盘存储的脚本的命中次数,我可以使用静态类成员来执行此操作吗?用户1:<?php $test = Example::singleton(); $test->visits++; ?> 用户2:<?php $test = Example::singleton(); $test->visits+…

AJAX实时电子邮件验证(PHP) - php

当用户在我的网站上创建帐户时,我希望对照我的数据库(MySQL)中的所有当前用户名检查输入的用户名,并确认是否可用。有谁知道我可以使用的任何好的库,或者是jQuery的插件? 参考方案 所需的确切信息以示例形式here给出。它使用jQuery作为JavaScript库

PHP:将字符串拆分为字母和数字部分的最佳方法 - php

我有几个格式的字符串AA11 AAAAAA1111111 AA1111111 分离字符串的字母和数字部分的最佳方法(最有效)? 参考方案 如果它们都是一系列字母,然后是一系列数字,并且没有非字母数字字符,那么sscanf()可能比regexp更有效$example = 'AAA11111'; list($alpha,$numeric) =…

php-casperjs获取内部文本 - php

我正在为casperjs使用php包装器-https://github.com/alwex/php-casperjs我正在网上自动化一些重复的工作,我需要访问一个项目的innerText,但是我尚不清楚如何从casperjs浏览器访问dom。我认为在js中我会var arr = document.querySelector('label.input…