web-dev-qa-db-ja.com

X分ごとにjQuery Ajaxリクエストを呼び出す

特定の期間にAjaxリクエストを呼び出すにはどうすればよいですか?タイマープラグインを使用する必要がありますか、jQueryにはこのプラグインがありますか?

47
Shahin

組み込みのjavascript setIntervalを使用できます。

var ajax_call = function() {
  //your jQuery ajax code
};

var interval = 1000 * 60 * X; // where X is your every X minutes

setInterval(ajax_call, interval);

または、より簡潔なタイプの場合...

setInterval(function() {
  //your jQuery ajax code
}, 1000 * 60 * X); // where X is your every X minutes
126
Ben

少し遅れましたが、jQuery ajaxメソッドを使用しました。しかし、最後のリクエストから応答が返ってこなければ、毎秒リクエストを送信したくなかったので、これを行いました。

function request(){
            if(response == true){
                // This makes it unable to send a new request 
                // unless you get response from last request
                response = false;
                var req = $.ajax({
                    type:"post",
                    url:"request-handler.php",
                    data:{data:"Hello World"}
                });

                req.done(function(){
                    console.log("Request successful!");

                    // This makes it able to send new request on the next interval
                    response = true;
                });
            }

            setTimeout(request(),1000);
        }

        request();
7
linslusa

いくつかのオプションがあり、setTimeout()またはsetInterval()を選択できます。 ここに、それらの使用方法を詳しく説明した素晴らしい記事があります

魔法は、それらがJavaScriptに組み込まれていることで、任意のライブラリで使用できます。

4
JMP

Puginは不要です。 jqueryのみを使用できます。

タイマーに何かを設定する場合は、JavaScriptのsetTimeoutまたはsetIntervalメソッドを使用できます。

setTimeout ( expression, timeout );
setInterval ( expression, interval );
4
santosh singh

javaScriptでsetInterval()を使用できます

<script>
//Call the yourAjaxCall() function every 1000 millisecond
setInterval("yourAjaxCall()",1000);
function yourAjaxCall(){...}
</script>
4
Calvin Fan

jqueryを使用します Every time Plugin

$("#select").everyTime(1000,function(i) {
//ajax call
}

setIntervalを使用することもできます

2
Gowri

このタイプの操作であなたの生活を楽にすることができる非常に良いjqueryプラグインを見つけました。 https://github.com/ocombe/jQuery-keepAlive をチェックアウトできます。

$.fn.keepAlive({url: 'your-route/filename', timer: 'time'},       function(response) {
        console.log(response);
      });//
0
Olotin Temitope