Learn how to a build a cloud-first strategyRegister Now

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 241
  • Last Modified:

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

0
gladxml
Asked:
gladxml
  • 4
  • 2
1 Solution
 
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
 
ProncaCommented:
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
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
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

Featured Post

Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

  • 4
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now