2016-09-24 13 views
-4

機能NotifyMe()は、タイムアウトのために1回だけ実行されます。直し方?setTimeoutが1回だけ実行されるのはなぜですか?

$(document).ready(function(){ 
 
var mydata = []; 
 
$.ajax({ 
 
    url: '3.php', 
 
    async: true, 
 
    dataType: 'json', 
 
    success: function (json) { 
 
    mydata = json.result; 
 
    if (mydata=="yes") 
 
    { 
 
     //notifyMe(); 
 
     setTimeout(notifyMe, 1000); 
 
    } 
 
    } 
 
}); 
 
});

+0

何回呼び出すと思われますか? 'setTimeout'は実行をスケジュールし、' setInterval'は各ティックの実行をスケジュールします。 – vlaz

+0

あなたはconsole.log(mydata)を使ってmydataの値を何とか印刷してください。成功の中で? –

+0

最初にAjaxの成功コールバックでタイムアウトが発生するのはなぜですか?私はあなたが何が起こりたいのか分かりません。 ajaxコールは一度だけ起こりますので、複数回通知する必要はありません。 ajax呼び出しを継続して送信したい場合は、setIntervalに渡された関数にajax呼び出しを入れて、それを継続的に呼び出す必要があります。 – Jecoms

答えて

2

のsetIntervalの代わりにsetTimeoutメソッドを使用してみてください。

+0

setTimeoutは再帰的な方法で何度も何度も呼び出すので正しくありません –

+0

notifyMeの内部には何がありますか? –

+0

はい、申し訳ありません、私はそれが同じAjax実装だと思った –

関連する問題