SORU
29 HAZİRAN 2010, Salı


Bir işlev her 60 saniyede arıyorum

Belirli bir zamanda, bir işlevi başlatmak için mümkündür setTimeout() kullanarak:

setTimeout(function, 60000);

Ama eğer işlevi birden çok kez başlatmak istiyorum varsa? Her zaman bir zaman aralığı geçiyor, işlevi çalıştırmak istiyorum (her 60 saniyede bir, diyelim).

CEVAP
29 HAZİRAN 2010, Salı


Eğer varsa timer içindeki kod uzun zaman aralığını alabilir umurunda değil varsa, setInterval() kullanın:

setInterval(function, delay)

Bu işlevi ilk ve parametre olarak geçirilen yangınlar.

Daha iyi bir yaklaşım, self-executing anonymous fonksiyonu ile birlikte setTimeout kullanmaktır

(function(){
    // do some stuff
    setTimeout(arguments.callee, 60000);
})();

bir sonraki çağrı kodunuzu idam edilmeden önce yapılmış olduğunu garanti eder. Fonksiyon referans olarak bu örnekte arguments.callee kullandım. arguments.callee ECMA 5 önerilmiyor çünkü işlevi bir isim verin ve setTimeout içinde bu aramak için daha iyi bir yol.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • BSA

    BSA

    9 NİSAN 2012
  • Call Me Howard

    Call Me Howa

    18 AĞUSTOS 2012
  • NikkoNantone

    NikkoNantone

    21 Kasım 2011