Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Tiempo transcurrido de un setinterval

Estas en el tema de Tiempo transcurrido de un setinterval en el foro de Javascript en Foros del Web. Hola a todos Bueno, yo quisiera saber si es posible saber cuanto tiempo falta para que se ejecute un setinterval. La cosa es que llamo ...
  #1 (permalink)  
Antiguo 24/04/2014, 09:36
Avatar de Beuses  
Fecha de Ingreso: marzo-2009
Ubicación: Maracaibo
Mensajes: 132
Antigüedad: 12 años, 4 meses
Puntos: 5
Pregunta Tiempo transcurrido de un setinterval

Hola a todos

Bueno, yo quisiera saber si es posible saber cuanto tiempo falta para que se ejecute un setinterval.

La cosa es que llamo a una función y luego tengo un setInterval que se ejecuta si estoy en esa pagina desde donde la llamo así:

Código:
cargaPacientes();
var intervalMain = setInterval(function(){
     if(ThePageName==='Pag_MainWorkFlow'){
          cargaPacientes();
      }
      else{ clearInterval(intervalMain); }
},60000);
Tengo otra función que llamo cuando activo un evento clic en esa pagina.
y la llamo al igual que la primera, y que se ejecute también luego con un setInterval así.

Código:
    paintPanelFicha();
    var intervalPaneles = setInterval(function(){
        if(ThePageName==='Pag_MainWorkFlow'){
            paintPanelFicha();
        }
        else{ clearInterval(intervalPaneles); }
    },60000);
Hasta ahi me funciona bien.. los 2 se ejecutan luego de transcurrido sus milisegundos.

La cosa es la siguiente..

Yo quisiera poder hacer algo así para llamar a la segunda función.
Código:
    paintPanelFicha();
    setTimeout(function(){
        paintPanelFicha();
        var intervalPaneles = setInterval(function(){
            if(ThePageName==='Pag_MainWorkFlow'){
                paintPanelFicha();
            }
            else{ clearInterval(intervalPaneles); }
         }, 60000);
    }, TIEMPO_RESTANTE_DE_intervalMain);
y así ejecutándose intervalMain y intervalPaneles en las siguientes vueltas y se actualicen los 2 campos al mismo tiempo.

Es esto posible?
  #2 (permalink)  
Antiguo 24/04/2014, 20:17
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 12 años, 3 meses
Puntos: 1485
Respuesta: Tiempo transcurrido de un setinterval

buenas,

nativamente en javascript no creo que hay alguna propiedad/función para determinar el tiempo faltante de un intérvalo. puedes implementarlo pero el valor calculado no será uno preciso aunque bastante aproximado. basicamente tendrías que jugar con el objeto Date. en cada ciclo del intérvalo creas un objeto Date con la fecha actual más el intérvalo. o sea, si el intérvalo es de 30s, el objeto Date será la hora actual más los 30s. ese objeto representa cúando será el próximo ciclo de dicho intérvalo. luego, cuando vayas a iniciar el otro intérvalo, calculas la diferencia entre el próximo ciclo y la hora actual.

Código:
var timer = 60000; // 60s;
var nextCycle; // variable global para que sea accesible;
setTimeout(function(){
nextCycle = new Date(Date.now() + timer);
...
}, timer);

// al momento de iniciar otro intérvalo;
setTimeout(..., nextCycle - Date.now());
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 28/04/2014, 08:34
Avatar de Beuses  
Fecha de Ingreso: marzo-2009
Ubicación: Maracaibo
Mensajes: 132
Antigüedad: 12 años, 4 meses
Puntos: 5
Respuesta: Tiempo transcurrido de un setinterval

Muchas gracias zerokilled

Me sirvió de mucho tu solución.
No se me hubiese ocurrido a mi

Punto para ti

Etiquetas: setinterval, settimeout, tiempo, transcurrido
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 15:39.