Home > Article > Web Front-end > How can I change the interval of the setinterval() method at runtime using JavaScript?
The setInterval() method is used to call a specific block of code again and again after a specific time interval specified as a parameter in parentheses. The setInterval() method accepts two parameters. The first parameter is the code that needs to be executed repeatedly, and the second parameter is the time when the code needs to be executed again.
In this article, we will learn ways to change the time interval of the setInterval() method at runtime. This way, it will execute the given code at irregular or variable intervals.
JavaScript provides us with two different built-in methods to change the time interval of the setInterval() method, as shown below -
Use clearInterval() method.
Use the setTimeout() method.
Let us learn more about the working principle and implementation of these two methods respectively.
The clearInterval() method is used to clear or stop the previously executed setInterval() function. We can use this method to change the time interval of seInterval() method by calling this function inside the function passed to setInterval() and it will clear the previously called setInterval() method and use the new one which we will define in the code time value.
The following syntax will show you how to use the clearInterval() method to clear the previous setInterval() method -
clearInterval( code to be executed, time interval );
Let's actually understand this method and change the timing of the setInterval() method using the clearInterval() method in JavaScript.
Step 1 - In the first step, we will add two different buttons in the HTML document, one for starting the interval and another for stopping the interval.
Step 2 - In this step, we will get all the required elements from the HTML document using IDs in JavaScript to perform changes in it.
Step 3 - In the next step, we will define a JavaScript function that first clears the previous setInterval() using the clearInterval() method, then with some new value, and uses our The function defined in this step calls the setInterval() method again.
Step 4 - In the last step, we will define another JavaScript function to stop the execution of setInterval() using the clearInterval() method.
The examples below will help you actually understand the above algorithm by delving into the code -
<html> <body> <h2>Change the Time Interval of setinterval() Method at RunTime using JavaScript</h2> <p id = "upper">The below text will print after a certain irregular interval of time every time.</p> <button id = "btn" onclick = "start()"> Start Printing </button> <button id = "stopbtn" onclick = "stop()"> Stop Printing </button> <p id = "print1"> </p> <p id = "result"> </p> <p id = "print2"> </p> <script> var result = document.getElementById("result"); var upper = document.getElementById("upper"); var printVal1 = document.getElementById("print1"); var printVal2 = document.getElementById("print2"); var interval, t = 500; function start() { printVal1.innerHTML = " Printing Starts: "; clearInterval(interval); result.innerHTML += " Printed after: <b> " + t + " </b> time. <br> "; t = t * 2; interval = setInterval(start, t); } function stop() { printVal2.innerHTML = " Printing Ends. "; clearInterval(interval); } </script> </body> </html>
In the above example, we use the clearInterval() method to change the time interval of the setInterval() method using JavaScript at runtime.
The setTimeout() method is similar to the setInterval() method. It also calls a piece of code after a specific interval, but unlike setInterval(), it only executes the code once instead of over and over again. The setTimeout() method will automatically stop after executing the code once, so we do not need to call the clearInterval() method like the setInterval() method to stop executing the previous interval.
Use the setTimeout() method to change the time interval according to the following syntax -
setTimeout( code to be executed, time interval );
Now let’s see the actual implementation of this method with the help of a JavaScript code example.
The algorithm of this method is almost the same as the previous method. You just need to perform some small changes as shown below -
Delete the clearInterval() method from the start() function of the previous algorithm.
Use the setTimeout() method to set the value of the interval variable instead of the setInterval() method with the same parameters.
The following example will explain the actual use of the setTimeout method and help you understand the above changes in the previous algorithm that you need to perform -
<html> <body> <h2>Change the Time Interval of setinterval() Method at RunTime using JavaScript</h2> <p id = "upper">The below text will print after a certain irregular interval of time every time.</p> <button id = "btn" onclick = "start()">Start Printing</button> <button id = "stopbtn" onclick = "stop()">Stop Printing</button> <p id = "print1"> </p> <p id = "result"> </p> <p id = "print2"> </p> <script> var result = document.getElementById("result"); var upper = document.getElementById("upper"); var printVal1 = document.getElementById("print1"); var printVal2 = document.getElementById("print2"); var interval, t = 500; function start() { printVal1.innerHTML = " Printing Starts: "; result.innerHTML += " Printed after: <b> " + t + " </b> time. <br> "; t = t * 2; interval = setTimeout(start, t); } function stop() { printVal2.innerHTML = " Printing Ends. "; clearInterval(interval); } </script> </body> </html>
In this example, we use JavaScript's setTimeout() method to use JavaScript to change the time interval between each call at runtime.
In this article, we learned about two different ways to change the time interval using the setInterval() method. We discuss both approaches in detail with the required theory and practical implementation with the help of separate code examples for each approach.
The above is the detailed content of How can I change the interval of the setinterval() method at runtime using JavaScript?. For more information, please follow other related articles on the PHP Chinese website!