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

  • Elliot Davin

    Elliot Davin

    28 Kasım 2008
  • Justin Schenck

    Justin Schen

    24 Kasım 2006
  • Skittles Page

    Skittles Pag

    28 Mart 2011