Call jQuery Ajax Request Each X Minutes

AjaxJqueryTimer

Ajax Problem Overview


How can I call an Ajax Request in a specific time Period? Should I use Timer Plugin or does jQuery have a plugin for this?

Ajax Solutions


Solution 1 - Ajax

You can use the built-in 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);

or if you are the more terse type ...

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

Solution 2 - Ajax

A bit late but I used jQuery ajax method. But I did not want to send a request every second if I haven't got the response back from the last request, so I did this.

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();

Solution 3 - Ajax

you can use setInterval() in javascript

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

Solution 4 - Ajax

No plugin required. You can use only jquery.

If you want to set something on a timer, you can use JavaScript's setTimeout or setInterval methods:

setTimeout ( expression, timeout );
setInterval ( expression, interval );

Solution 5 - Ajax

You have a couple options, you could setTimeout() or setInterval(). Here's a great article that elaborates on how to use them.

The magic is that they're built in to JavaScript, you can use them with any library.

Solution 6 - Ajax

use jquery Every time Plugin .using this you can do ajax call for "X" time period

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

you can also use setInterval

Solution 7 - Ajax

I found a very good jquery plugin that can ease your life with this type of operation. You can checkout https://github.com/ocombe/jQuery-keepAlive.

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

Solution 8 - Ajax

Instead of having an absolute repeating timer, you should call the function after completing the initial request (like a recursive function).

This ensures that requests will be sent only after completing the previous one. This avoids the issues like queuing up of requests and thereby Denial of Service.

(function ajaxRequest() {
  $.ajax('url_of_your_application.php', {
    type: 'post',
    data: {
      phone: '1234567890',
    },
  })
    .done(function (data) {
      // Do whatever you want with the data.
    })
    .always(function (data) {
      // We are starting a new timer only AFTER COMPLETING the previous request.
      setTimeout(ajaxRequest, 5000);
    });
})();

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionShahinView Question on Stackoverflow
Solution 1 - AjaxBenView Answer on Stackoverflow
Solution 2 - AjaxlinslusaView Answer on Stackoverflow
Solution 3 - AjaxCalvin FanView Answer on Stackoverflow
Solution 4 - Ajaxsantosh singhView Answer on Stackoverflow
Solution 5 - AjaxJMPView Answer on Stackoverflow
Solution 6 - AjaxGowriView Answer on Stackoverflow
Solution 7 - AjaxOlotin TemitopeView Answer on Stackoverflow
Solution 8 - AjaxSyntax ErrorView Answer on Stackoverflow