These two JavaScript functions: setTimeout() and setInterval() are especially used in scripts with motion effects, and working with time intervals.
They can determine the execution of a function at specified time-intervals.

Here is the general syntax of using them:
setTimeout('function_name()', milliseconds)
And:
setInterval('function_name()', milliseconds)
- 'function_name()' - a string with the function that will be called.
- milliseconds - is a number of milliseconds representing the time-interval that the function will be called.

Although they may seem similar, the difference between them is quite important.
Here's two examples with the same function. In the first example it is used setTimeout(); in the seccond example it is used the setInterval().
The function 'funName()' increments the value of a variable, then displays it into a HTML element.

Example with setTimeout

<h4>Example setTimeout</h4>
<p>Click on <button id='btn1'>Try it</button> and wait 1 second.</p>
<div id='id_tag'>Here will be displayed the value added by JavaScript</div>

<script>
var nr = 0; // variabile to be incremented

// function that will be called
function funName() {
 nr++; // increments the value with one unit
 document.getElementById('id_tag').innerHTML = nr; // adds the value into #id_tag
}

//when click on #btn1
document.getElementById('btn1').addEventListener('click', (ev)=>{
 // Calls the function after 1 second (1000 milliseconds)
 setTimeout('funName()', 1000);
});
</script>

Example with setInterval

<h4>Example setInterval</h4>
<p>Click on <button id='btn1'>Try it</button> and see the result after 1 second.</p>
<div id='id_tag'>Here will be displayed the value added by JavaScript</div>

<script>
var nr = 0; // variabile to be incremented

// function that will be called
function funName() {
 nr++; // increments the value with one unit
 document.getElementById('id_tag').innerHTML = nr; // adds the value into #id_tag
}

//when click on #btn1
document.getElementById('btn1').addEventListener('click', (ev)=>{
 // Calls the function every 1 second (1000 milliseconds)
 setInterval('funName()', 1000);
});
</script>

• If the setTimeout() is included into the same function that is called, it can be created an effect of auto-calling that will execute the function continuously.
To execute a function continuously with setTimeout(), add it into the body of that function, than calls the function with setTimeout().


Here's an example.

Using setTimeout() to execute a function various times. And a button to stop the execution

<h4>Example setTimeout() calls a function various times</h4>

<div id='id_tag'>Here will be displayed the value added by JavaScript</div>
Button to stop: <button onclick='funName(0)'>Stop</button>

<script>
var nr = 0; // variabile to be incremented
var stp = 1; // to determine when to stop the execution

// function that will be called by setTimeout
function funName(parm) {
 // if 'parm' is 0 (when the Stop button is clicked), sets stp = 0
 // will determine to not be executed the code of the next 'if()'
 if(parm==0) { stp = 0; }

 // this code is executed only if stp is 1
 if(stp==1) {
 nr++; // increments the value with one unit
 document.getElementById('id_tag').innerHTML = nr; // adds the value into #id_tag

 // Auto-calls the function after 1 second (value 1 for parameter)
 setTimeout('funName(1)', 1000);
 }
}

// calls funName after 1 second (value 1 for parameter)
setTimeout('funName(1)', 1000);
</script>

setTimeout and setInterval - Calling functions with parameters

If the function that will be called contains parameters, you must add values for those arguments, in the string added in setTimeout() or setInterval().
Be aware of the value of the argument, if it is string, a number, or a value from a variable.
- If the argument is a value from a variable, the variable must be concatenated (between braces, with '+') to the string with the function that is called.


Some examples:
1. Calling a function with two arguments: a string, and a number.
setTimeout('function_name("a_string", 89)', 2000);
2. Calling a function with two arguments: a string, and a numeric value stored into a variable.
setInterval('function_name("a_string", '+ nr_var +')', 2000);
3. Calling a function with two arguments: a numeric and a string value, both from variables.
setInterval('function_name('+ nr_var +', "'+ string_var +'")', 2000);

Here's an example which will display an Alert window, with a string and a number that are stored in variables.
<h4>Example setTimeout with arguments from variables</h4>
<p>To see the result, click: <button id='btn1'>Try it</button> and wait 1 second.</p>

<script>
// Variables that will be added as arguments to the function
var sir = 'JavaScript Course - https://coursesweb.net/';
var nr2 = 10;

function set_alert(parm1, parm2) {
 // displays an alert window, with values from parameters
 alert(parm1+' - '+parm2);
}

//when click on #btn1
document.getElementById('btn1').addEventListener('click', (ev)=>{
 //calls the function after 1.5 seconds, passing the values from variables
 setTimeout('set_alert("'+sir+'", '+nr2+')', 1500);
});
</script>

Daily Test with Code Example

HTML
CSS
JavaScript
PHP-MySQL
Which HTML5 tag defines marked text? (can be used to highlight parts of text)
<mark> <embed> <span>
<p>Free corses: <mark>coursesweb.net</mark> for Web Development.</p>
Which CSS pseudo-class adds a style to an element when the mouse is over it?
:focus :hover :active
a:hover {
  font-weight: bold;
  color: #00da01;
}
Click on the function which returns a string value that represents the number rounded to the x digits after the decimal point.
toPrecision(x) toFixed(x) floor(x)
var num = 12.34567;
num = num.toFixed(2);
alert(num);       // 12.35
Indicate the PHP function which reads an entire file into an array.
[) file() readfile()
$arr = file("a_file.txt", FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
var_export($arr);
setTimeout and setInterval in JavaScript

Last accessed pages

  1. Dynamic variables in JavaScript (9741)
  2. Node.js Move and Copy file (12285)
  3. Convert XML to JSON in JavaScript (21274)
  4. innerHTML and outerHTML to Get and Replace HTML content (22099)
  5. Creating objects in ActionScript (8098)

Popular pages this month

  1. Making DIV Contents Scroll Horizontally, with multiple Div`s inside (1278)
  2. Courses Web: PHP-MySQL JavaScript Node.js Ajax HTML CSS (1243)
  3. Tabs effect with CSS (1235)
  4. Contact page - CoursesWeb (1233)
  5. Insert, Select and Update NULL value in MySQL (730)