¿Cómo puedo llamar a una solicitud de Ajax en un período de tiempo específico?

** Tengo una pregunta difícil que es hacer una llamada ajax solo 5 veces por hora. No quiero hacer la sexta solicitud dentro de esa hora. Pero después de una hora exactamente, vuelvo a hacer cinco llamadas ajax una hora. Estoy usando jquery algún código que escribí como abajo. ¿Alguna ayuda? **

function getBubbles(){ $.ajax({ type : 'POST', url : '/PostData', data : data, success : function(response){ console.log(response); } }); } 

Utilice setTimeOut ();

 $.ajax({ url: "test.html", error: function(){ // will fire when timeout is reached }, success: function(){ //do something }, timeout: 12000// sets timeout to 12 seconds }); 

¿Qué te parece esta idea?

Usando Intervalo por cada 1 minuto, luego 1 minuto de tiempo de espera para evitar la solicitud dual.

5 veces solicite cada HORA

 var startRequest = setInterval(getBubbles, 60000); // change this part for time of request interval var valid_minutes = [12, 24, 36, 48, 60]; // I divided 60minutes into 5 possible/valid time. function getBubbles() { var getMinutes = new Date().getMinutes(); var is_valid = $.inArray(getMinutes, valid_minutes); //following will return -1 (if not found) because a number is being searched in an array if (is_valid >= 0) { setTimeout(fucntion( // do your ajax functions here to execute $.ajax({ type: 'POST', url: '/PostData', data: data, success: function(response) { console.log(response); } }); ), 60000); //set timeout to 60 seconds to prevent multiple request (will used to past 1 minute interval) } } 

Envíe todos los argumentos de solicitud a una cola con una función llamada queueRequest y call checkQueue. checkQueue comprueba si hay elementos en la cola y si el número de solicitudes activas es inferior a 5. Si se cumplen estas condiciones, aparece una solicitud de la cola y la convierte en una solicitud real de AJAX. Luego adjunta un controlador hecho a la solicitud que disminuye el recuento de solicitudes activas y llama a checkQueue.

 var count = 0; // Number of functions being called var funcArray = []; // Array of functions waiting var MAX_REQUESTS = 5; // Max requests var CALL_WAIT = 100; // 100ms function call() { // Check if count doesn't exceeds or if there aren't any functions to call if(count >= MAX_REQUESTS || funcArray.length == 0) // Call call() after 100ms setTimeout(function() { call() }, CALL_WAIT); count++; // Add request to the counter var func = funcArray.pop(); $.ajax(..., function(data) { func(data); // ....... count--; // Substract request to the counter }); } $(function() { call(); // First call to start polling. It will call itself each 100ms }); $(function() { $("div.server").each(function() { funcArray.push(function(data) { alert(data); }); }); });