Foros del Web » Programando para Internet » Javascript »

setInterval o setTimeout

Estas en el tema de setInterval o setTimeout en el foro de Javascript en Foros del Web. tengo este código y sencillamente va pero no como se espera.. no se carga luego de los 2s lo que se desea hacer es que ...
  #1 (permalink)  
Antiguo 20/03/2011, 11:15
(Desactivado)
 
Fecha de Ingreso: enero-2011
Mensajes: 66
Antigüedad: 13 años, 3 meses
Puntos: 2
Pregunta setInterval o setTimeout

tengo este código y sencillamente va pero no como se espera..
no se carga luego de los 2s
lo que se desea hacer es que se recarguen un 2 divs, cada segundo que llama a un php, los disv son distintos el php ya esta el problema es que no lo hace se queda siempre en (el readyState) 1

Código Javascript:
Ver original
  1. function temas(){
  2.     var lista = document.getElementById('temitas');    
  3.     ajax=inicializa_xhr();
  4.     var noKch = Math.floor(Math.random()*50000);
  5.     ajax.open("GET","pgw/dinamismo.php?nKch="+noKch,true);
  6.     ajax.onreadystatechange=function(){if(ajax.readyState==4){lista.innerHTML=ajax.responseText;}}
  7.     ajax.send(null);
  8.     setInterval('temas();',2000); //llama la temas cada 2000-> 2s
  9.    
  10. }  
  11. function vidFo(){
  12.     /**/
  13.     var infoVid = document.getElementById('infoVid');      
  14.     ajaxD=inicializa_xhr();
  15.     var noKch = Math.floor(Math.random()*50000);
  16.     ajaxD.open("GET","pgw/infoVid.php?nKch="+noKch,true);
  17.     ajaxD.onreadystatechange=function(){if(ajaxD.readyState==4){infoVid.innerHTML=ajaxD.responseText;}}
  18.     ajaxD.send(null)
  19.     setTimeout("vidFo();",2000); //llama la vidFo cada 2000-> 2s
  20. }
  #2 (permalink)  
Antiguo 20/03/2011, 12:00
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 10 meses
Puntos: 310
Respuesta: setInterval o setTimeout

setInterval ejecuta código cada x milisegundos, setTimeout lo hace sólo una vez, cuando han pasado x milisegundos.
Saludos (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #3 (permalink)  
Antiguo 20/03/2011, 12:01
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: setInterval o setTimeout

Hola:

Como lo tienes, debes usar setTimeout, ya que setInterval se repite infinitamente cada vez que se usa, o sea que estás creando un bucle infinito cada 2 segundos... además si hay demora en la consulta ajax, posiblemente se solapen las consultas.
Definitivamente, mi opinión es usar setTimeout, aunque si se tratase de otra cosa, posiblemente sea mejor la otra opción.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo

Etiquetas: dukejonell, settimeout
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 08:40.