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

:: problema con 2 loads de páginas simultáneas ::

Estas en el tema de :: problema con 2 loads de páginas simultáneas :: en el foro de Frameworks JS en Foros del Web. Buenos días~ Tengo una página en la cual se cargan dos secciones usando AJAX al cargar. El problema es que se carga solo una, si ...
  #1 (permalink)  
Antiguo 10/06/2008, 11:27
 
Fecha de Ingreso: marzo-2005
Mensajes: 103
Antigüedad: 19 años, 1 mes
Puntos: 1
:: problema con 2 loads de páginas simultáneas ::

Buenos días~
Tengo una página en la cual se cargan dos secciones usando AJAX al cargar.

El problema es que se carga solo una, si deshabilito la que se carga entonces se carga la otra, y sospecho que es porque es un solo script de AJAX el cual se reutiliza para cargar ambas.
Mi pregunta es: ¿Cómo se hacen los llamados para cargar dos secciones usando AJAX?

Estoy utilizando el siguiente script en el HEAD del HTML para cargar ambas secciones:

Código:
function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      if (oldonload) {
        oldonload();
      }
      func();
    }
  }
}

addLoadEvent(function() {
  ajaxload('lclass=<%=id_class%>&lsubclass=<%=id_subclass%>', 'index.asp', 'subclasssec');
  //ajaxload('showclasses=all', 'index.asp', 'shownewssec');
});
</script>

En las últimas líneas están los llamados para cargar las 2 secciones.

Si necesitan el código AJAX para cargar las secciones (que es uno solo) avísenme.

Muchísimas gracias de antemano!
  #2 (permalink)  
Antiguo 10/06/2008, 11:42
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: :: problema con 2 loads de páginas simultáneas ::

Hola alex28,

¿Podrías publica el código de tu función ajaxload?

Saludos.
  #3 (permalink)  
Antiguo 10/06/2008, 11:52
 
Fecha de Ingreso: marzo-2005
Mensajes: 103
Antigüedad: 19 años, 1 mes
Puntos: 1
Respuesta: :: problema con 2 loads de páginas simultáneas ::

Si claro:

Código:
var xmlHttp;
function ajaxload(str, gopage, loadsec){
	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null){
		alert ("Su navegador web no maneja AJAX!");
		return;
	}
	//Add passed Values
	var url = gopage;
	//If variables are set
	if (str != ''){
		url = url + '?' + str + '&sid=' + Math.random();
	}
	else {
		url = url + '?sid=' + Math.random();
	}
	document.getElementById(loadsec).innerHTML= '<div align="center"><img src="images/indicator.gif" /></div>';
	xmlHttp.onreadystatechange=stateChanged;
	xmlHttp.open("POST", url, true);
	xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	xmlHttp.send(url);
	//alert(url);
	function stateChanged(){
		if (xmlHttp.readyState==4){
			document.getElementById(loadsec).innerHTML=xmlHttp.responseText;
		}
	}
}

function GetXmlHttpObject(){
	var xmlHttp=null;
	try{
		// Firefox, Opera 8.0+, Safari
		xmlHttp=new XMLHttpRequest();
	}
	catch (e){
		// Internet Explorer
		try{
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e){
			xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	return xmlHttp;
}
  #4 (permalink)  
Antiguo 10/06/2008, 11:57
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: :: problema con 2 loads de páginas simultáneas ::

Bueno lo que puedo ver es que tu función ocupa una variable global la cual se sobrescribe cada que llamas a tu función ajaxload.

Te recomendaría cambiar el código de tu función para que no ocupe variables globales.

Saludos.
  #5 (permalink)  
Antiguo 10/06/2008, 12:27
 
Fecha de Ingreso: marzo-2005
Mensajes: 103
Antigüedad: 19 años, 1 mes
Puntos: 1
Respuesta: :: problema con 2 loads de páginas simultáneas ::

Sí! hahaha, eso lo solventó!
Puse la variable xmlHttp propia de la función ajaxload!

Mil gracias!!!
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 23:43.