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

Las propiedades readyState y status

Estas en el tema de Las propiedades readyState y status en el foro de Frameworks JS en Foros del Web. Hola, estoy aprendiendo algo sobre AJAX con la ayuda de un manual, y me surgio las siguiente duda: Despues de crear el objeto xmlhttp, instancia ...
  #1 (permalink)  
Antiguo 25/07/2008, 12:58
Avatar de javiro  
Fecha de Ingreso: febrero-2006
Mensajes: 48
Antigüedad: 18 años, 10 meses
Puntos: 1
Las propiedades readyState y status

Hola,
estoy aprendiendo algo sobre AJAX con la ayuda de un manual, y me surgio las siguiente duda:
Despues de crear el objeto xmlhttp, instancia del XMLHttpRequest, como es logico, uso la siguiente funcion para mostrar el contenido indicado como parametro en un div tambien indicado como parametro:
Código:
         function makerequest(serverPage, objID) {
		var obj = document.getElementById(objID);
		xmlhttp.open("GET", serverPage);
		xmlhttp.onreadystatechange = function() {
			if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
				obj.innerHTML = xmlhttp.responseText;
			}
		}
		xmlhttp.send(null);
	}
Entonces esta funcion hace la comprobacion de que la propiedad xmlhttp.readyState sea 4 (que se supone que es completado) y xmlhttp.status sea 200 (que se supone que es OK)
Pero cuando uso esto nunca entra en ese IF porque esos valores nunca son 4 y 200, entonces me funciona cuando no hago esa comprobacion y directamente ejecuta la linea obj.innerHTML = xmlhttp.responseText;

Alguien me puede explicar por qué?? y si esa comprobacion es necesaria.

Gracias!
  #2 (permalink)  
Antiguo 25/07/2008, 14:00
 
Fecha de Ingreso: octubre-2003
Mensajes: 18
Antigüedad: 21 años, 2 meses
Puntos: 1
Respuesta: Las propiedades readyState y status

Tienes que instanciar el objeto ajax en la variable xmlhttp para hacer uso de sus propiedades. ¿has comprobado que esté bien creada?
  #3 (permalink)  
Antiguo 26/07/2008, 10:22
Avatar de javiro  
Fecha de Ingreso: febrero-2006
Mensajes: 48
Antigüedad: 18 años, 10 meses
Puntos: 1
Respuesta: Las propiedades readyState y status

Claro clodoviro! ya lo explique cuando inicie el tema, pero pongo el codigo javascript entero:

Código:
//Crear una variable de Bool para comprobar si se está usando Internet Explorer.
	var xmlhttp = false;
	
	//Comprobar si se está usando IE.
	try {
		//Si la versión de javascript es superior a la 5.
		xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
	} catch (e) {
		//Si no, utilizar el tradicional objeto ActiveX.
		try {
			//Si se está usando Internet Explorer.
			xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (E) {
			//En caso contrario no se debe estar usando Internet Explorer.
			xmlhttp = false;
		}
	}
	
	//Si no se está usando IE, crear una instancia ActiveX del objeto.
	if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
		xmlhttp = new XMLHttpRequest();
	}
	
	function makerequest(serverPage, objID) {
		
		var obj = document.getElementById(objID);
		xmlhttp.open("GET", serverPage);
		xmlhttp.onreadystatechange = function() {
			if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {

///este If es el que no comprendo, porque cuando yo pruebo este codigo nunca entra porque el valor xmlhttp.readyState nunca es 4 y xmlhttp.status nunca es 200
				obj.innerHTML = xmlhttp.responseText;
			}
		}
		xmlhttp.send(null);
	}
Entonces si la to la linea if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
y ejecuto sin verificar la linea obj.innerHTML = xmlhttp.responseText; me funciona el script bien.
Pero entonces, porque tengo que validar readState y status si nunca entra con esos valores???
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:36.