单击按钮时,我有一个 jquery AJAX 调用,例如:
$(".play").click(function(){
function doAjax(){
$.ajax({
url: 'blah.php',
success: function(data) {
if (data==250)
{
setTimeout(doAjax, 2000);
}
else
{
$('#quote p').html(data);
}
}
});
}
doAjax();
});
来自服务器的任何数据都会打印到 div:
<div id="quote"><p> </p></div>
服务器上的 blah.php 进行一些处理以检索一些状态代码:
$r = new HttpRequest('http://localhost...', HttpRequest::METH_GET);
$r->send();
if ($r->getResponseCode() == 200)
{
echo "Starting video..."
//sends a video to play
}
else if ($r->getResponseCode() == 450)
{
echo "Oops! Not found...";
}
else if ($r->getResponseCode() == 550)
{
echo "Oops! An error occurred...";
}
else if ($r->getResponseCode() == 250)
{
echo "Initializing...";
}
else
{
echo "Now we are in trouble";
}
响应代码 ( $r->getResponseCode()
) 按我的预期返回,所以我的问题是我重复的 ajax 调用与setTimeout
. 我想要发生的是,当返回代码 250 时,它会打印出来Initializing
,它确实如此,但是我的 AJAX 调用将重复,因为成功函数是用 250 调用的。这不起作用。它说Initializing
但从不重复,因为下一步是我应该看到Starting video...
。
其他一切似乎都检查出来了,我想问题出在我的 jquerysuccess
函数上?