JavaScript - Countdown function

source: http://stackoverflow.com/questions/11075927/how-can-i-use-setinterval-or-settimeout-and-display-the-results-during-the-count

by katalin_2003

HTML

<span id="displayDiv"></span>

JavaScript

function countDown(i, callback) {
    callback = callback || function() {};
    var int = setInterval(function() {
        document.getElementById("displayDiv").innerHTML = "Update in: " + i;
//      i-- || (clearInterval(int), callback());
// The above commented line (http://en.wikipedia.org/wiki/Short-circuit_evaluation) is equivalent to:
        if(i) {
            i--;
        }
        else if (i-- == 0) {
//          console.log('Timer done!');
            (clearInterval(int), callback());
        }
    }, 1000);
}


// Use jQuery (faster :p) and enable commented lines for quick testing
// Change the first argument of countDown function in order to change initial time
//$("button").click(function(){
    countDown(10, function(){
        console.log("Countdown done! Run AJAX one more time!")
    });
//});