Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 长轮询:每个浏览器中的通知_Php_Javascript_Ajax_Long Polling - Fatal编程技术网

Php 长轮询:每个浏览器中的通知

Php 长轮询:每个浏览器中的通知,php,javascript,ajax,long-polling,Php,Javascript,Ajax,Long Polling,我开始对我网站的每个页面进行长时间的投票请求。它每秒钟查看一次数据库,如果有新的内容,它会将其标记为已看到并输出通知。然后,调用JavaScript将启动一个新的ajax请求 现在我在网站上打开多个标签时遇到了问题,因为只有一个会收到新的通知。这也是使用相同用户名登录的跨浏览器时出现的问题 解决这个问题最聪明的方法是什么 谢谢你的投入 我认为最好避免使用浏览器。您将遇到浏览器问题,而且您的基础架构应该非常庞大,可以支持它 尝试服务器端推送技术,如 Comet是一种web应用程序模型,其中包含一个

我开始对我网站的每个页面进行长时间的投票请求。它每秒钟查看一次数据库,如果有新的内容,它会将其标记为已看到并输出通知。然后,调用JavaScript将启动一个新的ajax请求

现在我在网站上打开多个标签时遇到了问题,因为只有一个会收到新的通知。这也是使用相同用户名登录的跨浏览器时出现的问题

解决这个问题最聪明的方法是什么


谢谢你的投入

我认为最好避免使用浏览器。您将遇到浏览器问题,而且您的基础架构应该非常庞大,可以支持它

尝试服务器端推送技术,如

Comet是一种web应用程序模型,其中包含一个长期保存的HTTP请求 允许web服务器在不使用浏览器的情况下将数据推送到浏览器 明确要求


其他方法也可以使用。

当您像stackoverflow一样使用
websockets
时,您不需要轮询。您可以向所有侦听器(活动会话)发送通知,并且一旦侦听器收到通知,就可以在本地清除通知并检查是否存在同一用户的任何其他会话。如果数据库中也没有明确的通知。我不是将此作为答案发布,因为我知道
websockets
实际上不是
ajax和长轮询。