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

  • Bogdan Gabriel

    Bogdan Gabri

    5 Aralık 2006
  • ethr95awd

    ethr95awd

    8 Kasım 2006
  • TechXCentral

    TechXCentral

    12 Temmuz 2011