Ver Mensaje Individual
  #1 (permalink)  
Antiguo 30/07/2009, 23:10
Edig
 
Fecha de Ingreso: diciembre-2007
Mensajes: 927
Antigüedad: 16 años, 4 meses
Puntos: 12
SetInterval() Avansa muy rapido

Hola,

Tengo un problema con un codigo de contador regresivo hecho en js que hice y pues lo que pasa es que avses avansa muy rapido, el codigo es caragado con ajax [se caraga la pagina que lo contiene] y pues si termin ay quiero empezarlo de nuevo avansa mas rapido :S...

les dejo el code

Lammado:
Código javascript:
Ver original
  1. setInterval('tiempo_restante();', 1000);

Código:
<input name="segundos" type="hidden" id="segundos" value="<? echo $segundos_restantes; ?>" />
Código javascript:
Ver original
  1. //restamos lo tiempos e imprimimos el tiempo que queda
  2.  function tiempo_restante() {
  3.      //aramos los segundos
  4.      var sec = window.document.getElementById('segundos').value;
  5.      var restante = sec;
  6.      var mins = 0;
  7.      var hora = 0;
  8.     if(sec > 60) {
  9.         do{
  10.             //le quitamos 60 en 60 a los segundos hasta que quede en menos de 60
  11.             sec -= 60;
  12.             mins++;
  13.         }while(sec > 60);
  14.     }
  15.    
  16.     //checamos los minutos
  17.     if(mins > 60) {
  18.         do{
  19.             mins -= 60;
  20.             hora++;
  21.         }while(mins > 60);
  22.     }
  23.    
  24.     //rellenamos con 0
  25.     if(hora < 9) {
  26.         hora = '0'+hora;
  27.     }
  28.     if(mins < 9) {
  29.         mins = '0'+mins;
  30.     }
  31.     if(sec < 9) {
  32.         sec = '0'+sec;
  33.     }
  34.     //si todo es 0  o menos se imprime Terminado
  35.     if(hora <= 0 && mins <= 0 && sec <= 0) {
  36.         window.document.getElementById('tiempo').innerHTML = 'Construccion Terminada';
  37.         //actualizamos las db
  38.         url('funciones/cultivos.php', 'funciones');
  39.         //actualizamos el contenido
  40.         url('edificios.php', 'contenido');
  41.     }else{
  42.         window.document.getElementById('tiempo').innerHTML = 'Tiempo Restante: '+hora+':'+mins+':'+sec;
  43.         //regresamos el tiempo que queda
  44.         restante--;
  45.         window.document.getElementById('segundos').value = restante;
  46.     }
  47. }