Foros del Web » Programando para Internet » Javascript »

SetInterval() Avansa muy rapido

Estas en el tema de SetInterval() Avansa muy rapido en el foro de Javascript en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 30/07/2009, 23:10
 
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. }
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:30.