我正在玩长时间轮询并试图停止由AJAX调用启动的脚本(如果发生新请求)。 这是由一个AJAX请求开始PHP代码:
$checker = $_SESSION['checker'] = time();
while (true) {
if ($checker != $_SESSION['checker']) {
$out = 'new one started';
break;
}
if (some other condition) {
$out = 'smth done or happend';
break;
}
sleep(3);
}
echo $out;
我一直在做一些记录,它看起来像没有更新$_SESSION['checker']
,所以如果我运行相同的脚本(这应该改变$_SESSION['checker']
变量) ,先前启动的脚本中的while循环仍然会看到旧的$_SESSION['checker']
。为什么不更新?
'希望所有做sense'我对此表示怀疑。 –
你好,请你能澄清你的问题吗? – brclz
我相信你应该用ajax部分来销毁它,而不是通过PHP。在当前的httprequest上尝试.abort()来停止它并启动另一个。 –