特定の期間にAjaxリクエストを呼び出すにはどうすればよいですか?タイマープラグインを使用する必要がありますか、jQueryにはこのプラグインがありますか?
組み込みの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
少し遅れましたが、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();
いくつかのオプションがあり、setTimeout()
またはsetInterval()
を選択できます。 ここに、それらの使用方法を詳しく説明した素晴らしい記事があります 。
魔法は、それらがJavaScriptに組み込まれていることで、任意のライブラリで使用できます。
Puginは不要です。 jqueryのみを使用できます。
タイマーに何かを設定する場合は、JavaScriptのsetTimeout
またはsetInterval
メソッドを使用できます。
setTimeout ( expression, timeout );
setInterval ( expression, interval );
javaScriptでsetInterval()
を使用できます
<script>
//Call the yourAjaxCall() function every 1000 millisecond
setInterval("yourAjaxCall()",1000);
function yourAjaxCall(){...}
</script>
jqueryを使用します Every time Plugin 。
$("#select").everyTime(1000,function(i) {
//ajax call
}
setIntervalを使用することもできます
このタイプの操作であなたの生活を楽にすることができる非常に良いjqueryプラグインを見つけました。 https://github.com/ocombe/jQuery-keepAlive をチェックアウトできます。
$.fn.keepAlive({url: 'your-route/filename', timer: 'time'}, function(response) {
console.log(response);
});//