Foros del Web » Programando para Internet » Javascript »

Actualizar con setInterval

Estas en el tema de Actualizar con setInterval en el foro de Javascript en Foros del Web. Hola, a ver si me podeis echar una mano. Tengo una lista de usuarios de un chat que los extraigo con AJAX y los muestro ...
  #1 (permalink)  
Antiguo 01/07/2010, 07:38
 
Fecha de Ingreso: septiembre-2006
Mensajes: 19
Antigüedad: 17 años, 6 meses
Puntos: 0
Actualizar con setInterval

Hola, a ver si me podeis echar una mano.

Tengo una lista de usuarios de un chat que los extraigo con AJAX y los muestro en un div determinado. Los usuarios son botones simplemente. Quiero que cada 3 segundos me ejecute la función y me sobreescriba lo que escribió 3 segundos antes y no que me lo concatene.

Tengo lo siguiente:

Código PHP:
Ver original
  1. echo "<script type=\"text/javascript\">";
  2. echo "setInterval(\"contactos()\", 3000)";
  3. echo "</script>";

Y en el JavaScript una función contactos() con AJAX que hace lo siguiente:

Código Javascript:
Ver original
  1. var divPersonal=document.getElementById('personal');
  2.           var nombre=peticion_http.responseText;
  3.           var resul=eval("("+nombre+")");
  4.         if(peticion_http.readyState == 4) {
  5.           //Y no es una respuesta de error
  6.           if(peticion_http.status == 200) {
  7.             for(i=0;i<resul.length;i++){
  8.                 var boton=document.createElement("input");
  9.                 boton.setAttribute('type','button');
  10.                 boton.setAttribute('id',resul[i]);
  11.                 boton.setAttribute('value',resul[i]);
  12.                 divPersonal.appendChild(boton);
  13.             }
  14.           }
  15.         }

Entonces cada 3 segundos lo que me hace es añadirme botones a los que ya tenía en lugar de borrar los que ya no existen y mantener los que siguen existiendo y agregar los nuevos que es lo que realmente quiero.

¿Cómo puedo hacer?

Probé alguna cosa con deleteChild pero es que entonces no me llega siquiera a mostrar los botones.

Gracias.

Última edición por nachin86; 01/07/2010 a las 08:17
  #2 (permalink)  
Antiguo 01/07/2010, 07:55
 
Fecha de Ingreso: enero-2008
Mensajes: 614
Antigüedad: 16 años, 3 meses
Puntos: 57
Respuesta: Actualizar con setInterval

Creo que una posible solucion seria primero borrar todo lo que tienes dentro del DIV y despues entrar al ciclo para crear los botones
Código html:
Ver original
  1. window.getElementById("divPersonal").innerHTML = "";
Pero desconozco si tendra consecuencias en memoria que no elimines los botones que ya tienes en el DIV
  #3 (permalink)  
Antiguo 01/07/2010, 08:17
 
Fecha de Ingreso: septiembre-2006
Mensajes: 19
Antigüedad: 17 años, 6 meses
Puntos: 0
Respuesta: Actualizar con setInterval

Cita:
Iniciado por posman Ver Mensaje
Creo que una posible solucion seria primero borrar todo lo que tienes dentro del DIV y despues entrar al ciclo para crear los botones
Código html:
Ver original
  1. window.getElementById("divPersonal").innerHTML = "";
Pero desconozco si tendra consecuencias en memoria que no elimines los botones que ya tienes en el DIV
Aún no puedo comprobar lo de las consecuencias en memoria pero juraría que eso me borraría cualquier evento asociado al botón. Acabo de ponerlo y borrar me los borra pero sale, digamos, parpadeante cada x milisegundos. Realmente lo que quiero es que me mantenga los que existen y me borre los que ya no existen. Y no sé si hay alguna manera.

Eso es una solución que me sirve para probar alguna cosa pero me parece que no me va a ser válido cuando implemente el resto.

Gracias.

Etiquetas: setinterval
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 18:15.