SORU
13 Temmuz 2011, ÇARŞAMBA


ilk kez gecikme olmadan setınterval yürütmek

Bir javascript setInterval yöntem, hemen çalıştırmak için yapılandırmak için ve daha sonra timer ile yürütür

CEVAP
13 Temmuz 2011, ÇARŞAMBA


En basit fonksiyon sadece kendine direkt ilk kez arama oldu:

foo();
setInterval(foo, delay);

Ancak setInterval özellikle setInterval olayların bazı durumlarda bütün bir yükü herhangi bir gecikme olmadan hemen birbirinin ardından gelebilir önlemek için iyi bir nedeni vardır. Bir başka neden ise döngüyü durdurmak isterseniz kolu setInterval orijinal çağrısından döndürülen hatırlamak zorunda anlamına gelir açıkça clearInterval aramalısın.

Bu yüzden alternatif bir yöntem foo sonraki çağrılar yerine setTimeout kullanarak, kendisi için bir tetikleyici var

function foo() {
   // do stuff
   // ...

   // and schedule a repeat
   setTimeout(foo, delay);
}

// start the cycle
foo();

Bu olmadığını garanti ederen azındanaramalar arasında delay Ara. Aynı zamanda daha kolay gerekirse döngüyü iptal etmek için yapar - sadece döngü sonlandırma koşulu ulaşıldığında setTimeout deme.

Daha da iyisi, bu bir sarabilirsinizhemen ifade çağrılan işlevsonra yine kendisi yukarıda olarak çağıran işlevi, oluşturur ve otomatik döngü: başlar

(function foo() {
    ...
    setTimeout(foo, delay);
})();

fonksiyonu tanımlar ve döngü tek seferde tüm başlar.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Lupe Fiasco

    Lupe Fiasco

    23 ŞUBAT 2006
  • TheFlashCentre

    TheFlashCent

    22 Mayıs 2008
  • wwjoshdu

    wwjoshdu

    18 ŞUBAT 2011