Son zamanlarda, belirli bir süre sonra otomatik yenileme gerektiren bir hatayla karşılaştım. Ve setTimeout()
zamana geri saymak ve sayfayı yeniden yüklemek için kullanılmıştı. Bunun setTimeout()
bir bedeli olduğunu çok az biliyordum.
Çok az MDN Web Dokümanlar üzerinde alıntılanan gibi alt , Internet Explorer, Chrome, Safari ve Firefox 32 bit dahili tamsayı imzalı olarak gecikmeyi saklamak dahil "Tarayıcılar. 24,8 hakkında (2147483647 ms daha büyük gecikmeler kullanılırken bu bir tamsayı taşması olur gün), zaman aşımının hemen yürütülmesine neden olur. "
Şimdi, sayfaya ne olduğunu anlayacaksınız! (Sayfa yeniden yüklenmeye devam etti ...)
Bu kadar büyük bir gecikmeyi gerektirecek neredeyse hiç işlem olmadığı doğrudur. Belirli bir süre sonra zamanlayıcıyı sıfırlamak veya kullanmak gibi başka seçenekleriniz de vardır setInterval()
.
setInterval()
Geri arama işlevinde basit işlemler olduğunda ve bu işlevin çalıştırılması için gereken maksimum sürenin ne olduğunu bildiğinizde tercih ederim . Maksimum sürenin farkında değilseniz, kodunuzun etkinliği gerçek sistem süresinin gerisinde kaldığından olay kuyruğu sonsuza kadar birikmeye devam edecektir.
Bilge seçin! İşiniz bittiğinde zamanlayıcıları silmeyi unutmayın!