Foros del Web » Programando para Internet » Javascript »

setInterval Error!!

Estas en el tema de setInterval Error!! en el foro de Javascript en Foros del Web. saludos.. les queria pedir colaboracion en un problema... miren lo que pasa es que hize un slideshow que esta hecho con listas.. y lo que ...
  #1 (permalink)  
Antiguo 10/08/2011, 17:36
 
Fecha de Ingreso: enero-2011
Mensajes: 6
Antigüedad: 13 años, 3 meses
Puntos: 0
Pregunta setInterval Error!!

saludos.. les queria pedir colaboracion en un problema... miren lo que pasa es que hize un slideshow que esta hecho con listas.. y lo que yo queria es que por medio de la funcion setinterval se moviera automaticamente y si lo hace.. pero el problema es que si estas navegando en varias pestañas y cambias de pestañas y te pones a hacer otras cosas el setInterval continua y como que acumula las veces que las funciones entran en accion y cuando vuelvo a la pagina me efectua todas las acciones acumuladas juntas lo que hace que el slide se mueva infinidad de veces... alguien sabe a que se debe este error

estoy hablando de la funcion setInterval de javascript!!!

saludos se los agradeceria..
  #2 (permalink)  
Antiguo 11/08/2011, 00:51
Avatar de ceSharp  
Fecha de Ingreso: octubre-2008
Ubicación: Madrid
Mensajes: 495
Antigüedad: 15 años, 6 meses
Puntos: 66
Respuesta: setInterval Error!!

hola el_canan,

no sé como usas setInterval, pero sí tiene esa ventaja/incoveniente; se ejecuta hasta el infinito y más allá. Para detener un setInterval tienes que lanzarlo desde una variable creada para ese fin, y detenerla llamando a esa variable con clearInterval.
Te pongo un ejemplo, que lo mismo no me he explicado bien:

Código Javascript:
Ver original
  1. var ejecutar; //esta es la variable que creamos para el setInterval
  2.  
  3. function iniciarInterval()
  4. {
  5. ejecutar = setInterval("tu_funcion()",1000);
  6. }
  7. function detenerInterval()
  8. {
  9. clearInterval(ejecutar);
  10. }

saludos.
  #3 (permalink)  
Antiguo 11/08/2011, 07:31
Avatar de Aijoona
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Buenos Aires
Mensajes: 779
Antigüedad: 12 años, 11 meses
Puntos: 343
Respuesta: setInterval Error!!

Repetición:

A modo de aclaración, el uso de setTimeout/setInterval con strings es una práctica a evitar siempre que sea posible.

Código Javascript:
Ver original
  1. // Forma incorrecta
  2.     setTimeout('aReload()', 60000);
  3.      
  4.     // Forma correcta
  5.     setTimeout(aReload, 60000);
__________________
blog | @aijoona
  #4 (permalink)  
Antiguo 11/08/2011, 09:37
 
Fecha de Ingreso: enero-2011
Mensajes: 6
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: setInterval Error!!

Saludos amigos:

pues que creen que ante mi molestia ante lo que pasaba con el setInterval, me tome a la tarea de crear mi propia cuenta regresiva y funciona correctamente pero tiene el mismo problema que al utilizar el setInterval, por lo que he llegado a la conclusion que el error pasa por otra cosa y no tanto por la funcion setInterval...
  #5 (permalink)  
Antiguo 11/08/2011, 09:46
Avatar de eddwinpaz  
Fecha de Ingreso: noviembre-2007
Ubicación: Merida , Venezuela
Mensajes: 1.066
Antigüedad: 16 años, 5 meses
Puntos: 25
Respuesta: setInterval Error!!

usa mejor setTimeOut
__________________
O nos hacemos miserables o nos hacemos fuertes , la cantidad de trabajo es la misma.
  #6 (permalink)  
Antiguo 11/08/2011, 13:09
 
Fecha de Ingreso: enero-2011
Mensajes: 6
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: setInterval Error!!

Les contare como solucione las cosas xD ... me puse a reflexionar sentado en un arbol y me acorde de window. y me imagine que ahi estaba la solucion entonces pense y lei un poco y pues implemente lo siguiente:


Para Firefox, Safari, Chrome/Chromium:
window.onblur = detener_slide;
window.onfocus = iniciar_slide;

Para nuestro buen amigo IE:
document.onfocusin = iniciar_slide;
document.onfocusout = detener_slide;

y asi es como evite el problema de acumulacjion de las funciones...

Muchas gracias a todos por su colaboracion

- ayudemos todos para mejorar todos -

Etiquetas: html
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 20:57.