Timer JavaScript not running in Chrome & Mozilla when window minimized -


hi using java script timer, works in ie in chrome when window minimized becomes slow, in mozilla stops timer. can suggest ? code follows :-

<html> <head> <script>  var millisec = 0; var seconds = 0; var timer;  function display(){    if (millisec>=9){      millisec=0      seconds+=1   }   else      millisec+=1      document.d.d2.value = seconds + "." + millisec;      timer = settimeout("display()",100);   }  function starttimer() {    if (timer > 0) {     return;   }   display();     } function stoptimer() {   cleartimeout(timer);   timer = 0; }  function startstoptimer() {   if (timer > 0) {      cleartimeout(timer);      timer = 0;   } else {      display();   } }  function resettimer() {     stoptimer();     millisec = 0;     seconds = 0; }    </script> </head> <body> <h5>millisecond javascript timer</h5> <form name="d"> <input type="text" size="8" name="d2"> <input type="button" value="start/stop" onclick="startstoptimer()"> <input type="reset" onclick="resettimer()"> </form>  </body></html> 

you can not use settimeout make reliable time keeping script.

john resig explains how javascript timers work: http://ejohn.org/blog/how-javascript-timers-work/

the short version there have small delay. millisecond parameter pass settimeout "best effort".


if want show live timer consider polling time often. if event loop slows down, there no effect on ability track time, less updates.

http://jsfiddle.net/64pcr7pw/

<script type="text/javascript"> var timer, time = 0, start_time = 0; function startstoptimer() {     if (timer) {         time += new date().gettime() - start_time;         start_time = 0;         clearinterval(timer);         timer = null;     } else {         start_time = new date().gettime();         timer = setinterval(function () {             document.d.d2.value = time + new date().gettime() - start_time;         }, 10);     } } function resettimer() {     time = 0;     start_time = new date().gettime();     document.d.d2.value = "0"; } </script>  <form name="d">     <input type="text" size="8" name="d2"/>     <input type="button" value="start/stop" onclick="startstoptimer()"/>     <input type="reset" onclick="resettimer()" /> </form> 

Comments

Popular posts from this blog

javascript - how to protect a flash video from refresh? -

android - Associate same looper with different threads -

visual studio 2010 - Connect to informix database windows form application -