ボタンがクリックされると、次のような 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()
) が期待どおりに返されるので、私の問題はsetTimeout
. 私が望んでいるのは、コード 250 が返されたときに出力されるInitializing
ことですが、成功関数が 250 で呼び出されるため、AJAX 呼び出しが繰り返されます。これは機能しません。Initializing
次のステップはStarting video...
.
他のすべてがチェックアウトしているようですが、問題は私のjquerysuccess
関数にあると思いますか?