我有一个 PHP 脚本,当被调用时,它会做一些事情,然后休眠 3 秒,然后回显它的结果。
然后我有这个页面,它每秒调用上面的脚本(带有 Ajax 请求)1/10
。当我得到响应时,我在 div 元素中写了一个数字。
问题是,onreadystatechange 处理程序每 3 秒触发一次,并一起写入 30 个数字。是否有任何其他替代方案可以sleep()
像我需要的那样表现?
以下是被请求页面的代码片段:
ignore_user_abort(true);
$time=microtime(true)*10000;
changemystatus(1, $time); //this writes to a database
sleep(3);
if ($time>=getmytime()){ //getmytime() reads the data previously written by changemystatus()
setstatus(0); // still writing to that DB
echo("1");
}else echo ("0");
基本上,如果用户不再发送请求(因为他走了,或者他的连接中断,或者他禁用了 JS 或其他什么),我希望数据库中的“状态”字段更改为 0,以便其他玩家可能知道他是现在“离线”。