2016-04-13 26 views
1

ile saatin bir saatinin nasıl görüntüleneceğini gösterir javascript ile bir saat yapmak istiyorum.Gerçek zamanlı

Saniye ve hatta milisaniyelerin gerçek bir saat gibi gerçek zamanlı olarak görüntülenmesini istiyorum. Sayıların gerçek zamanda nasıl değiştiğini görebilirsiniz.

bir işlev bu bir

function countdown (i) { 
    if (i == undefined) { 
    i = 10; 
    } 

    if (i > 0) { 
    i--; 
    var timeout = window.setTimeout("document.getElementById("thedate").innerHTML ... , 1000); 
    } 
} 
countdown(); 

Ve işlevi gerçek saat gibi aynı hızda tekerrür ediyor bunu nasıl yapabilir gibi yazma komutu tekrarlamak için kendini aradığını bir döngü düşündü Bu mümkün mü?

SetTimeout'un adım aralığını 1 olarak ayarladığımda ve işlevi saniyede 1000 kez tekrarladığımda, getDate tarafından daha önce tanımladığım gerçek zamanla eşzamansız olabilir, doğru muyum?

Ana soru şu: yinelenen işlev senkronizasyonumu gerçek zamanlı olarak nasıl alabilirim?

+1

'setInterval() işlevine baktınız mı? Bence burada ihtiyacın olan şey: http://mdn.beonex.com/en/DOM/window.setInterval.html –

+0

Ayrıca, gerçek bir anonim işlevi bir dizi dizgeden ziyade setTimeout() işlevine aktarmak daha iyi olur. –

+1

setTimeout() saniyede 1000 yapmanıza izin vermez: 4 ms'den daha düşük bir gecikme geçirirseniz, otomatik olarak 4 ms'ye kadar döndürür. Her durumda gecikme garanti edilmez, bu yüzden doğru bir saat için her zaman aşımında bir Tarih nesnesinden tekrar zamana ihtiyacınız vardır. – nnnnnn

cevap

2

kullanın o sorun için setInterval Web Api: bloguma olarak

var intervalID = window.setInterval(myCallback, 1000); 

function myCallback() { 
    // Gets called every second 
} 

Documentation for the setInterval() method

0

yerine fonksiyonu ile sonsuz döngü oluşturmak yerine, sadece kullanmak setInterval(function() {}, 1000);

İlgili konular