Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Refactorizando funcion

Estas en el tema de Refactorizando funcion en el foro de Frameworks JS en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 02/03/2010, 07:21
Avatar de 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

Etiquetas: ajax, funcion
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 03:43.