Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/228.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 出于长轮询目的检查mysql_Php_Jquery_Ajax_Performance_Long Polling - Fatal编程技术网

Php 出于长轮询目的检查mysql

Php 出于长轮询目的检查mysql,php,jquery,ajax,performance,long-polling,Php,Jquery,Ajax,Performance,Long Polling,我试图在我的站点上做一些长时间的轮询,以通知用户收到的邮件。我会将mysql用于数据库目的。如果表有更新,检查mysql安全吗?这会不会导致网站在不断寻找更新时速度变慢?你怎么检查mysql是否更新了 代码应该是这样的 while($currentTime <= $lastTime){ usleep(10000) clearstatcache(); $sql = mysql_query("SELECT time FROM timestamp WHERE $cu

我试图在我的站点上做一些长时间的轮询,以通知用户收到的邮件。我会将mysql用于数据库目的。如果表有更新,检查mysql安全吗?这会不会导致网站在不断寻找更新时速度变慢?你怎么检查mysql是否更新了

代码应该是这样的

while($currentTime <= $lastTime){
     usleep(10000)
     clearstatcache();
     $sql = mysql_query("SELECT time FROM timestamp WHERE $currentTime = timestamp");
     $row = mysql_fetch_array($sql);
     $currentTime = $row['time'];
}
所以基本上,它会一直运行,直到数据库中有一个新的时间戳,但是如果它让服务器每10秒查看一次我的数据库,这是否有效


谢谢

我强烈建议为此使用cron作业或计划任务。

或计划任务(如果您在windows上)


如果您不阻止,您建议的方法将超时,并保持进程繁忙。而cron作业就是针对这类内容的。

您可以使用AJAX,让客户端每隔X秒轮询一次服务器。但你可以更详细地描述你的问题


另一种可能是cron,但您必须提供更多信息。

PHP在服务器端执行。这意味着这个while循环将阻止向用户显示任何内容,直到实际发生更新为止。将网页加载给用户后,您需要经常使用ajax轮询数据库。