Skip to content Skip to sidebar Skip to footer

Timed Loop, 10 Second Between

I currently got this: var xnumLow = 3000; var xnumHigh = 4900; var ynumLow = 9969; var ynumHigh = 13900; var ts = Math.round((new Date()).getTime() / 1000); for (y=ynumLow; y<

Solution 1:

(function () {
    var xnumLow = 3000,
        xnumHigh = 4900,
        ynumLow = 9969,
        ynumHigh = 13900,
        currentY = ynumLow,
        delay = 500,
        displayData = function () {        
            var out = [],
            x;            
            for (x=xnumLow; x<xnumHigh; x++) {
                out.push( currentY + "-" + x );          
            }            
            console.log(out.join(","));  //do the append here      
            currentY++;            
            if (currentY<ynumHigh) {
                window.setTimeout(displayData,delay);
            }        
        };
    displayData()
})();

Solution 2:

setInterval(function () {
    // code that appends a box
}, 10000);

https://developer.mozilla.org/en-US/docs/DOM/window.setInterval

Solution 3:

var y = ynumLow;

functionaddRow()
{
    for (x = xnumLow; x < xnumHigh; x++) {
        $('#box').append(y + " - " + x);
    }

    if (y++ < ynumHigh)
        refreshId = setTimeout(addRow, 10000);
}

addRow();

edited as Pete suggested for clarity

Solution 4:

I would do it something like this:

var xnumLow = 3000;
var xnumHigh = 4900;

var ynumLow = 9969;
var ynumHigh = 13900;
var x, y = ynumLow; //don't forget to declare your variables!var ts = Math.round((newDate()).getTime() / 1000);

(functionaddYRow() { //Create a function that adds the X elementsfor(x=xnumLow; x<xnumHigh; x++)
    {
        $('#box').append(y + " - " + x);
    }

    y++; //don't forget to increment yif(y < ynumHigh) { //only re-call if we aren't done yetsetTimeout(addYRow, 10000); //Recall the function every 10 seconds.
    }
}());

Looking at some of the other answers, it's important to realize that you don't want to set up a bunch of things to happen 10 seconds from a given point (which is what happens if you do a loop calling setTimeout(). Instead, I assume you want to add a row, then wait 10 seconds, then add another row. This can only be achieved by adding a row (usiny, in my case, the addYRow() function), then delaying 10 seconds before re-calling the add-a-row function.

Column Delay:

In response to the question about how to do a 500ms delay in the x row, that's a little tricky, but not too bad. You just have to nest things one more time:

var y = ynumLow; //don't forget to declare your variables!var ts = Math.round((newDate()).getTime() / 1000);

(functionaddYRow() { //Create a function that adds the X elementsvar x = xnumLow;
    (functionaddXCol() { //Create a function that adds each X element
        $('#box').append(y + " - " + x);

        x++;
        if(x < xnumHigh) { //if x is not done, call  addXCol 500ms latersetTimeout(addXCol, 500);
        } else {
            y++;
            if(y < ynumHigh) { //If x is done but y isn't, call addYRow 10 seconds latersetTimeout(addYRow, 10000); //Recall the function every 10 seconds.
            }
        }
    }());
}());

Note that if you want to delay the start of the column/row addition (e.g., if you want to put a 500ms delay between when a row is added and when the first column is added, you'll need to adjust the addXCol() expression creation to look like this:

setTimeout(functionaddXCol() { //Create a function that adds each X element//...
}, 500);

This will put that initial delay in. Hope that helps.

Solution 5:

Something like this?

var refreshId = setInterval(function(){
  $('#box').append(++y + " - " + x);
}, 10000);

Post a Comment for "Timed Loop, 10 Second Between"