Jaavscript Timer Help

Hello Experts,

Below is a javascript countdown. Now what I am trying to do is to call the function after a certain process. In the attach code snippets I just put a an alert then after the countdown timer should be called again. How can I do this.  If you have a better approach is solving my problem that will be cool.

TIA,
gladxml


<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<script> 
<!-- 
// 
 var milisec=0 
 var seconds=30
// var myCounter = document.getElementById('d2'); 
// myCounter.value='60' 
function display(){
var myCounter = document.getElementById('d2');
myCounter.value = '30'
 if (milisec<=0){ 
    milisec=9 
    seconds-=1 
 } 
 if (seconds<=-1){ 
    milisec=0 
    seconds+=1 
 } 
 else 
 {
    milisec-=1 
    myCounter.value=seconds+"."+milisec 
    setTimeout("display()",100) 
 }
 if (myCounter.value == '0.0')
 {
	alert('call the function again');
	display();
 }
} 
-->  
</script> 
<title>Untitled Document</title>
</head>
 
<body>
<form name="MyForm" action="response_normal.asp" method="post">
	<input type="text" size="8" name="d2" id="d2"><br />
</form>
<div id="MyResult"></div>
<script>
display();
</script>
 
</body>
</html>

Open in new window

LVL 15
gladxmlAsked:
Who is Participating?

[Webinar] Streamline your web hosting managementRegister Today

x
 
ProncaConnect With a Mentor Commented:
To clarify my post:

You have to reset the number of seconds to 30+1 (because it will decrement due to milisec == 0). Then you can call display() again. I put display() inside another setTimeout() but it doesn't need to be. All you need to do is reset the seconds.
0
 
gladxmlAuthor Commented:
To make it clearer
I want to call the countdown timer function again after a certain process. SO that the process will just loop again and again. In my example after the alert message the timer function must be triggered.

TIA,
gladxml
0
 
ProncaCommented:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<script> 
<!-- 
// 
 var milisec=0 
 var seconds=30
// var myCounter = document.getElementById('d2'); 
// myCounter.value='60' 
function display(){
var myCounter = document.getElementById('d2');
myCounter.value = '30'
 if (milisec<=0){ 
    milisec=9 
    seconds-=1 
 } 
 if (seconds<=-1){ 
    milisec=0 
    seconds+=30+1 
 } 
 else 
 {
    milisec-=1 
    myCounter.value=seconds+"."+milisec 
    setTimeout("display()",100) 
 }
 if (myCounter.value == '0.0')
 {
        alert('call the function again');
        setTimeout("display()",0)
 }
} 
-->  
</script> 
<title>Untitled Document</title>
</head>
 
<body>
<form name="MyForm" action="response_normal.asp" method="post">
        <input type="text" size="8" name="d2" id="d2"><br />
</form>
<div id="MyResult"></div>
<script>
display();
</script>
 
</body>
</html>

Open in new window

0
The new generation of project management tools

With monday.com’s project management tool, you can see what everyone on your team is working in a single glance. Its intuitive dashboards are customizable, so you can create systems that work for you.

 
gladxmlAuthor Commented:
Ok thanks....

What I did is like this

        alert('call the function again');
        milisec=0 ;
        seconds=30;
        display();

Just need to know if there is are other ways to create a timer function.  Do you know any?

0
 
gladxmlAuthor Commented:
I have notice when I run the code on the second or third call of he function the timer run faster than the usual. Do you have any idea why it is like that?
0
 
gladxmlAuthor Commented:
Thanks anyway. Not sure how to fix the timer speed on the next loop. Just need to find a new timer function
0
All Courses

From novice to tech pro — start learning today.