Foros del Web » Programando para Internet » Javascript »

ejecutar código cada 5 minutos

Estas en el tema de ejecutar código cada 5 minutos en el foro de Javascript en Foros del Web. Hola amig@s No sabía muy bien qué título ponerle a este post... A ver si me explico mejor... Tengo un script, en el cual tengo ...
  #1 (permalink)  
Antiguo 13/06/2012, 02:47
Avatar de garciasanchezdani  
Fecha de Ingreso: noviembre-2011
Mensajes: 429
Antigüedad: 12 años, 5 meses
Puntos: 51
ejecutar código cada 5 minutos

Hola amig@s No sabía muy bien qué título ponerle a este post... A ver si me explico mejor...
Tengo un script, en el cual tengo dos variables (velocidad y velocidadAnterior), y tengo lo siguiente:

Código Javascript:
Ver original
  1. if( velocidad > velocidadAnterior ){    // velocidadAnterior es una constante
  2.     alert("Exceso de velocidad");    
  3. }

velocidadAnterior es una constante, y velocidad es la velocidad actual que voy obteniendo cada segundo. Es decir, ese pedazo de código se ejecuta cada segundo, y en caso de que se cumpla la condición, la primera vez entra...pero si hay una segunda vez, no puede mostrarse ese alert hasta dentro 5 minutos....necesito dentro de ese if otro if que calcule el instante en el que entró la primera vez, y si: instante segunda vez - instante primera vez >= 5 minutos entonces sí vuelve a entrar.
Gracias, Daniel
__________________
Diseño Web Jaén
  #2 (permalink)  
Antiguo 13/06/2012, 03:01
 
Fecha de Ingreso: junio-2012
Mensajes: 25
Antigüedad: 11 años, 10 meses
Puntos: 2
Respuesta: ejecutar código cada 5 minutos

mira no se si es lo que tu quieras hacer pero como yo lo veo hay 2 opciones faciles aqui va la primera
Código:
if( velocidad > velocidadAnterior ){    // velocidadAnterior es una constante
        alert("Exceso de velocidad");    
     velocidad = 0;   
}
esa es una opcion cuando llegues a velocidadAnterior velocidad valdra 0 lo que quiere decir que tardaras 5 minutos nuevamente antes de que vuelvas a mostrar el alert es decir hasta que vuelva a alcanzar a velocidadAnterior, pero si lo que estas haciendo es algo como un juego y no puedes perder la velocidad a la que vas tienes otra opcion

Código:
var i=1;
if( velocidad > (velocidadAnterior*i) ){    // velocidadAnterior es una constante
        alert("Exceso de velocidad");    
        i++;   
}
entonces la cosa seria asi superas la velocidad que deseas ( que seria la normal por que solo estas multiplicando por 1) ponte tu que velocidadAnterior sea 50 velocidad llega a 51 salta el alert e incrementa i que ahora valdria 2 y la condicion nueva del if seria velocidad > 100 que es 50 * 2 no pierdes ningun valor y tienes que esperar 5 minutos otra vez para entrar, luego seria 50 * 3 y asi dependiendo si entra en el if o no

eso fue de acuerdo a lo que entendi, si no era eso a lo que te referias comenta y vemos xD
  #3 (permalink)  
Antiguo 13/06/2012, 03:06
Avatar de YYs86  
Fecha de Ingreso: abril-2012
Ubicación: Salamanca
Mensajes: 136
Antigüedad: 12 años
Puntos: 14
Respuesta: ejecutar código cada 5 minutos

Tienes que jugar con setInterval() y setTimeout.

El primero te ejecuta un blucle infinito que se ejecuta cuando tu le digas.
El segundo ejecuta una sola vez con un delay de los segundos que tu le indiques.
__________________
Web developer:

http://xtremgaming.es
http://leaderleague.com
  #4 (permalink)  
Antiguo 13/06/2012, 03:11
 
Fecha de Ingreso: junio-2012
Mensajes: 25
Antigüedad: 11 años, 10 meses
Puntos: 2
Respuesta: ejecutar código cada 5 minutos

Cita:
Iniciado por YYs86 Ver Mensaje
Tienes que jugar con setInterval() y setTimeout.

El primero te ejecuta un blucle infinito que se ejecuta cuando tu le digas.
El segundo ejecuta una sola vez con un delay de los segundos que tu le indiques.
a lo mejor yo no entendi muy bien la pregunta, pero creo que el ya tiene esa parte, es decir con el setInterval esta llamando a la funcion que incrementa velocidad y en una parte de esa funcion luego de que incrementa compara y necesita saber si ya es mayor creo, asi lo entendi yo
  #5 (permalink)  
Antiguo 13/06/2012, 03:26
Avatar de garciasanchezdani  
Fecha de Ingreso: noviembre-2011
Mensajes: 429
Antigüedad: 12 años, 5 meses
Puntos: 51
Respuesta: ejecutar código cada 5 minutos

Hola amigo, muchas gracias por tu respuesta, me parece interesante tu razonamiento.
Al final lo he hecho así:

Código Javascript:
Ver original
  1. //Variables globales
  2. var tiempoExcesoVelocidad = new Array();    /* Array para controlar que la alarma EXCESO VEL se muestra cada 5 minutos */
  3. var contadorExcesoVelocidad = 0;
  4. //Función
  5. function(){
  6. if( velocidad > velocidadAnterior){
  7.       var fechaActual = new Date;
  8.       var minutoActual = fechaActual.getMinutes();   // Obtengo el minuto actual
  9.       if(contadorExcesoVelocidad == 0){    // La primera vez, entra y muestra el alert
  10.               tiempoExcesoVelocidad[contadorExcesoVelocidad] = minutoActual;   // Relleno el array
  11.               alert("Exceso de velocidad");
  12.               contadorExcesoVelocidad = contadorExcesoVelocidad+1; //Aumento el contador
  13.       }else{      // Si no es la primera vez
  14.               if(minutoActual - tiempoExcesoVelocidad[contadorExcesoVelocidad-1] == 5){  /*Diferencia de 5minutos */
  15.                        alert("Exceso de velocidad");
  16.                        contadorExcesoVelocidad = contadorExcesoVelocidad+1; //Aumento el contador
  17.                }
  18.       }
  19. }
  20. }

Lo estoy probando, y funciona. Te doy un +1 por tu tiempo.
Saludos, Daniel

---------------------------------------------------------------------------
EDITO:
¿Qué os parece mi solución?
__________________
Diseño Web Jaén

Etiquetas: cada, minutos
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 10:13.