Ver Mensaje Individual
  #1 (permalink)  
Antiguo 02/03/2010, 07:21
Avatar de fenix4
fenix4
 
Fecha de Ingreso: noviembre-2001
Ubicación: Caracas
Mensajes: 226
Antigüedad: 22 años, 5 meses
Puntos: 1
Pregunta Refactorizando funcion

Aquí les dejo el código, abajo los comentarios.

Código:
addEvent(window,'load',inicializarEventos,false);



function inicializarEventos()

{

  // Mostramos los comentarios actuales

  // Asignamos el evento Onclick al boton1

  var $ob0=document.getElementById('enlaceA');

  addEvent($ob0,'click',presionBotonA,false); 
  cargarPrograma('php/consultaA.php')	; 

}



//Presionaron un Boton

function presionBotonA(e)

{  
	cargarPrograma('php/consultaA.php')	;

}




//La variable es global para los manejos de eventos
var $conexion0;
function cargarPrograma(url)
{
  if(url=='')
  {
    return;
  }

  $div= "divPrograma";
  $conexion0=crearXMLHttpRequest();
  $conexion0.onreadystatechange = procesarEventos;
  $conexion0.open("GET", url, true);
  $conexion0.send(null);
}

function procesarEventos()
{
	var $idDivPrograma = document.getElementById($div);
	if($conexion0.readyState == 4)
	{
		if($conexion0.status==200)	
		{

			$idDivPrograma.innerHTML = $conexion0.responseText;

		}else if($conexion0.status==404){

				$idDivPrograma.innerHTML = 'La direccion no existe';

			}else	{

				$idDivPrograma.innerHTML = 'Error: '.$conexion0.status;

			}   
		}
	else
	{
		$idDivPrograma.innerHTML ='<img src="/MI3/img/cargando.gif">';
	}
}



//***************************************

//Funciones comunes a todos los problemas

//***************************************



function addEvent(elemento,nomevento,funcion,captura){

  if (elemento.attachEvent)  {

    elemento.attachEvent('on'+nomevento,funcion);

    return true;

  }  else  

    if (elemento.addEventListener)    {//

      elemento.addEventListener(nomevento,funcion,captura);

      return true;

    }

    else

      return false;

}



function crearXMLHttpRequest() {

  var xmlHttp=null;

  if (window.ActiveXObject) 

    xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");

  else 

    if (window.XMLHttpRequest) 

      xmlHttp = new XMLHttpRequest();

  return xmlHttp;

}
Se me presenta la siguiente incógnita, quiero usar la funcion procesarEventos() para instancias varias conexiones de AJAX, y por su puesto la idea es no copiar el código varias veces.

El primer problema que tengo es que si le paso el ID del Div como parámetro a la función, se queda en un loop, y no me muestra nada. Lo que tuve que hacer fue llenar una variable local $div y llamarla desde la función procesarEventos(), de esta forma se resolvió el problema, pero mi pregunta es por qué no puedo pasar la variable cuando llamo a la función procesarEventos()???.

Ahora faltaría resolver lo de la variable global $conexion0, ya que si hago lo mismo que el caso anterior no me funciona la llamada al archivo.

Como podría arreglar la función procesarEventos() para que se pueda instaciar para llevar varios Divs, con paginas diferentes.

Gracias..
__________________
S.L.P.S.

Última edición por fenix4; 02/03/2010 a las 07:36