SORU
12 EKİM 2008, Pazar


Daha doğru bir şekilde setTimeout daha bir Javascript zamanlayıcı oluşturmak için var mı?

Javascript setTimeout() yöntemi nasıl her zaman canımı sıkan bir şey.

Benim durumumda, zamanlayıcı korkunç durumlar çok yanlış olur. Yanlış, gerçek gecikme süresi 250-500ms göre daha az ya da daha değişik görünüyor. Bu sefer çok büyük bir miktar olmasa da, UI öğeleri Göster/Gizle için kullanırken zaman gözle görülür bir şekilde fark edilebilir.

setTimeout() doğru (harici API başvurmadan) gerçekleştirir emin olmak için yapılabilecek herhangi bir hile var ya da bu bir kayıp neden?

CEVAP
12 EKİM 2008, Pazar


Yapılabilecek herhangi bir hile setTimeout() gerçekleştirir emin olmak için doğru bir başvurmadan harici API) ya da bu bir kayıp neden?

Hayır ve hayır. Bir şey setTimeout() - tarayıcılar için uygun değildir ve tamamen doğru bir zamanlayıcı yakın almak için gidiyoruz değil.Ancakya şey zamanlama için güvenmek gerekmez. Çoğu animasyon kütüphaneler-bundan yıllar önce fark etmiştir: 4 ** ama (new Date()).milliseconds (ya da eşdeğeri) değerine göre ne yapılması gerektiğini belirlemek ile geri ayarlayın. Bu hala uygun bir şekilde eski tarayıcılar üzerinde davranmaya çalışırken yeni bir tarayıcı daha güvenilir zamanlayıcı desteği yararlanmak için izin verir.

Bunu da yapabilirsinizçok fazla sayaçları kullanmaktan kaçının! Bu çok önemli: her zamanlayıcı bir geri arama. Her bir geri arama JS kodu çalıştırır. JS kod yürütülürken, tarayıcı olayları - diğer aramalar da dahil olmak üzere gecikmiş veya bırakılır. Geri tamamlandığında, ek geri çalıştırmak için bir şans için diğer tarayıcı olayları ile rekabet etmesi gerekir. Bu nedenle, bu zaman aralığı için tüm bekleyen görevleri işleyen bir zamanlayıcı daha iyi rastlayan aralıklarla ve kısa zaman aşımları) ile iki zamanlayıcı zaman aşımı ile daha üst üste iki zamanlayıcı daha iyi performans için!

Özet: setTimeout() bir görev "tasarımlar ve gerçek zamanlı saat UI eylemleri düzeltmek için kullanın." bir zamanlayıcı / uygulamak kullanmayı bırakın

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Jimmie Jones

    Jimmie Jones

    16 Kasım 2007
  • TheScorpioTechno

    TheScorpioTe

    15 Aralık 2010
  • Crossover

    Crossover

    18 HAZİRAN 2007