2016-05-12 76 views
1

在我的網站上,我正在計數(並顯示)用戶在我的網站上用了多少秒(而不是幾分鐘或幾小時)。所以,如果他們已經上了5分鐘,它會顯示300,而不是5分鐘。 我對JavaScript沒有經驗,所以請幫忙。Javascript第二計數器

+0

去這個鏈接,並檢查了類似的問題:http://stackoverflow.com/questions/5517597/plain-count-up-timer-in-javascript –

回答

4

您可以使用setInterval函數按照您的選擇經常運行其他函數。例如:

var seconds = 0; 
 
var el = document.getElementById('seconds-counter'); 
 

 
function incrementSeconds() { 
 
    seconds += 1; 
 
    el.innerText = "You have been here for " + seconds + " seconds."; 
 
} 
 

 
var cancel = setInterval(incrementSeconds, 1000);
<div id='seconds-counter'> </div>

如果運行這個片段中,你會看到櫃檯工作。

setInterval函數有兩個參數:

  • 要撥打
  • 毫秒的通話

既然你要調用增加計數器每秒之間的號碼的功能,你想要使用1000毫秒(1秒)。

欲瞭解更多詳情,請參閱MDN documentation for setInterval

+0

此代碼產生不準確的值,因爲它沒有考慮可能的回調調用延遲。 – jkordas

+0

好點。我去了一個非常基本的例子,因爲「非常經驗」的評論,但我會贊成其他答案。 –

+0

謝謝。這很有用。 – JaredCBarnes

3

我的答案與上面的答案類似,但無論如何我都會給它。這隻會在單個頁面上工作,所以希望您的網站可以在AJAX上運行。

window.setInterval((function(){ 
 
    var start = Date.now(); 
 
    var textNode = document.createTextNode('0'); 
 
    document.getElementById('seconds').appendChild(textNode); 
 
    return function() { 
 
     textNode.data = Math.floor((Date.now()-start)/1000); 
 
     }; 
 
    }()), 1000);
You've been on this page for <span id=seconds></span> seconds.

+1

這段代碼更準確,因爲它考慮到了回調調用的可能延遲。 – jkordas