setTimeOut () lub setInterval (). 4 metody zastosowania tej samej rzeczy. co jest najlepsze?
Wyświetlam zegarek odliczający w odniesieniu do podanego czasu końcowego.
chociaż działa idealnie, ale chcę wiedzieć, które metody najlepiej zastosować.
poniżej jest moja funkcja odliczania.
var timerId;
var postData = {endDate : endDate, tz : tz};
var countdown = function()
{
$.ajax({
type : 'post',
async : false,
timeout : 1000,
url : './ajax_countdown.php',
data : $.param(postData),
dataType : 'json',
success : function (resp){
$('#currentTime').html(resp.remainingTime);
}
});
}
chcę, aby funkcja (odliczanie) została wywołanaautomatycznie po co 1 sekundę a jeśli nie zostanie wykonane / zakończone w ciągu 1 sekundy, anuluj bieżący ajax i uruchom nowe wywołanie ajax.
teraz znalazłem, że są4 metody pracy
metoda 1: użyciesetInterval () z oknem obiektwindow.setInterval(countdown, 1000);
metoda 2: użyciesetInterval () niezależniesetInterval(function() {countdown()}, 1000);
metoda 3: użyciesetTimeOut wewnątrz funkcji wywołanie innej funkcji do intializacji głównej funkcjivar countdown = function() {
$.ajax({ //ajax code });
timerId = setTimeout(countdown, 5000); // assign to a variable
}
function clockStart() {
if (timerId) return
countdown();
}
clockStart(); // calling this function
metoda 4: użycieanonimowe wywołanie funkcjivar countdown = function() {
$.ajax({ //ajax code });
timerId = setTimeout(countdown, 5000);
}
(function(){
if (timerId) return;
countdown();
})();
Powiedz mi, Proszę
Co jest zaletą każdej metody i która jest najlepszą / właściwą metodą?Powinienem użyćclearTimeOut()
lubclearInterval()
?Referencje
http://javascript.info/tutorial/settimeout-setintervalWywoływanie funkcji co 60 sekundhttp://www.electrictoolbox.com/using-settimeout-javascript/