Wywołaj żądanie jQuery Ajax co X minut


Jak mogę wywołać żądanie Ajax w określonym przedziale czasu?
Czy powinienem używać wtyczki Timer, czy też jQuery ma do tego wtyczkę?
Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Możesz użyć wbudowanego javascript setInterval.
var ajax_call = function() {
//your jQuery ajax code
};var interval = 1000 * 60 * X;// where X is your every X minutessetInterval(ajax_call, interval);

lub jeśli jesteś bardziej zwięzłym typem ...
setInterval(function() {
//your jQuery ajax code
}, 1000 * 60 * X);// where X is your every X minutes
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Trochę późno, ale użyłem metody Ajax jQuery. Ale nie chciałem wysyłać żądania co sekundę, jeśli nie otrzymałem odpowiedzi z ostatniego żądania, więc zrobiłem to.
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();
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Nie jest wymagana żadna wtyczka. Możesz używać tylko jquery.
Jeśli chcesz ustawić coś na liczniku czasu, możesz użyć metod JavaScript
setTimeout
lub
setInterval
:
setTimeout ( expression, timeout );
setInterval ( expression, interval );
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Masz kilka opcji, możesz
setTimeout ()
lub
setInterval ()
.

Oto świetny artykuł, który szczegółowo opisuje, jak ich używać.
http://www.elated.com/articles ... rval/
.
Magia polega na tym, że są one wbudowane w JavaScript, możesz ich używać w dowolnej bibliotece.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

możesz użyć
setInterval ()
w javascript
<script>
//Call the yourAjaxCall() function every 1000 millisecond
setInterval("yourAjaxCall()",1000);
function yourAjaxCall(){...}
</script>
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

użyj jquery

za każdym razem wtyczka
http://jquery.offput.ca/timers/
Używając tego możesz wykonać wywołanie Ajax dla okresu "X"
$("#select").everyTime(1000,function(i) {
//ajax call
}

możesz także użyć

setInterval
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Znalazłem bardzo dobrą wtyczkę jquery, która może ułatwić Ci życie przy tego typu operacjach. Możesz złożyć zamówienie

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

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się