【发布时间】:2013-06-15 02:07:29
【问题描述】:
我想向服务器发送 AJAX 调用,该服务器向我们的客户拨打电话。但是,我不希望启动该过程的人必须让他们的浏览器保持打开状态。经过一番研究,我发现我可以在 php 中正常传递一个标头,以允许浏览器在不停止 php 执行的情况下断开连接。这也适用于 AJAX 吗?相关代码如下。
//jQuery 1.8.10
$('#start').click(function(){
$.post('/startcalling', {
'time_limit': 0
});
});
$('#stop').click(function(){
$.post('/stopcalling');
});
重要的 PHP
function startCalling(){
echo "starting...";
header('Connection: close');
while(getFlagStatus()){
makeNextCall();
}
}
function stopCalling(){
if(!getFlagStatus()){
$query = "UPDATE cc_flags SET cc_on = 0";
mysql_query($query);
}
}
我可以将它打包到 CLI 命令中,并实现我的目标,但我觉得必须有一个更简单的方法。如果我感到困惑,请告诉我,我会进行编辑。
编辑:Does php execution stop after a user leaves the page? 这适用于这里吗?
【问题讨论】:
-
您总是可以在用户的浏览器中设置一个 cookie,尽管它可以被删除,这可能是一个安全问题
-
嗯,我希望 php 在浏览器关闭后执行。如果他们想停止执行,他们只需登录,我将通过会话验证他们。