Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/11/2011, 12:00
azaz
 
Fecha de Ingreso: enero-2011
Mensajes: 1.150
Antigüedad: 13 años, 11 meses
Puntos: 10
Intento cambiar la dinamica de mi funcion js pero no lo consigo...

Hola, hos cuento mi problema sobre una funcion js que no consigo hacerla funcionar como yo quiero, se trata de un archivo xml que a traves de una funcion cambio su contenido de forma dinamica, hasta aqui bien. Pero cada vez que cambio el archivo xml llamo a otra funcion js llamada mostrarnombres donde esta llama a otra funcion llamada mostrarregistro donde pretendo mostrar los datos del archivo xml con un intervalo de 10 segundo, lo que pasa que cada vez que cambio el xml y posterior mente llamo a la funcion mostrarnombres que llama a mostrarregistro me tarda 10 segundos en mostrar los resultados en pantalla, pero esto es lo que no quiero osea que cuando llame a mostrarnombre me muestre el primer resultado al momento pero despues el seguiente nombre me lo muestro pasado 10 segundo y asin sucesivamente pero cada vez que cambio el xml que no me tarde 10 segundo en mostrarme la funcion muestro codigo por si me podeis decir como hacerlo.


esta es la funcion que me muestra los datos en uno en uno cambiandolo
var procesamiento, xml = null, contador=0;
Código Javascript:
Ver original
  1. function MostrarRegistro() {
  2.         try {
  3.                 document.getElementById("registro").innerHTML ='<p>'+ xml.getElementsByTagName('nombre')[contador].firstChild.nodeValue+'</p>';
  4.                 contador ++;
  5.         }
  6.         catch(e) {
  7.                 try { window.clearInterval(procesamiento); } catch(e) {}
  8.                 contador = 0;
  9.         }
  10. }

esta es la funcion que llama a mostrarregistro dandole un intervalo de 10 seg
Código Javascript:
Ver original
  1. function MostrarNombres() {
  2.         var ajax = obtiene_http_request();
  3.         ajax.open('get','archivo.xml');
  4.         ajax.onreadystatechange = function() {
  5.                 if(ajax.readyState == 4){
  6.                         if(ajax.status == 200) {
  7.                                 xml=ajax.responseXML;
  8.                                 if(xml.getElementsByTagName('nombre').length > 0)
  9.                                         procesamiento = window.setInterval(MostrarRegistro, 10000);
  10.                         }
  11.                 }
  12.         }
  13.         ajax.send(null);
  14. }

aqui la funcion que me cambia el xml y posteriormente llama a mostrarnombres
Código Javascript:
Ver original
  1. function pedir_xml(){
  2. //................
  3.   if(ajax.readyState == 4){
  4.                         if(ajax.status == 200) {
  5. //................
  6. MostrarNombres();
  7. }
  8. }
  9. }

saludos.