A veces sale un error (el 1029) que significa (creo) que pierde la conexión con el servidor. Últimamente cuando hago peticiones con Ajax no muestra los datos que se piden y tengo que cargar otra vez ese cuadro (div) o recargar la página con F5.
También otras veces logro ver que manda un error 1029 y no muestra la página. Pero todo esto sólo sucede en la aplicación que usa Ajax (XMLHttpRequest). Por que hay otra página en el mismo servidor que no presenta ese problema, y si lo llega a presentar creó que nadie se queja.
Solo quisiera saber como evitar este problema.
Código HTML:
function nuevoAjax()
{
var xmlhttp=false;
try
{
// Creacion del objeto AJAX para navegadores no IE
xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e)
{
try
{
// Creacion del objet AJAX para IE
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
catch(E)
{
if (!xmlhttp && typeof XMLHttpRequest!="undefined")
{
xmlhttp=new XMLHttpRequest();
}
}
}
return xmlhttp;
}
function parte(url,divid)
{
var peticion = nuevoAjax();
url = url+"&ms="+new Date().getTime();
var obj = document.getElementById(divid);
var loader = document.getElementById("loading");
peticion.open("GET", url);
peticion.onreadystatechange = function()
{
cargando();
if (peticion.readyState == 4)
{
if (peticion.status == 200)
{
txt=unescape(peticion.responseText);
obj.innerHTML = txt;
terminado();
}
else
{
estado(peticion.status);
cargando();
}
}
}
peticion.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=ISO-8859-1');
peticion.send(null);
}
Como pueden ver no uso otra cosa del otro mundo... lo único que cambia es que es lo que pide... puede ser toda una página o solamente llenar un Select o un Input.
Les agradecería bastante el que me digan como puedo evitar que "se cuelgue" o "que marque error" o "que no cargue los datos"... así como antes de mostrar los datos, preguntar si hubo algún detalle, y en tal caso volver a tratar... ahorita mismo se me ocurrió una, pero no se como vaya a afectar:
Código HTML:
function parte(url,divid)
{
var peticion = nuevoAjax();
url = url+"&ms="+new Date().getTime();
var obj = document.getElementById(divid);
var loader = document.getElementById("loading");
peticion.open("GET", url);
peticion.onreadystatechange = function()
{
cargando();
if (peticion.readyState == 4)
{
if (peticion.status == 200)
{
txt=unescape(peticion.responseText);
obj.innerHTML = txt;
terminado();
}
elseif (peticion.status == 1029)
{
parte(url,divid); // Aqui vuelvo a llamar, pero el problema viene cuando de verdad sea un error malo... o algo por el estilo... tal vez solo lo ponga para el 1029... así como lo deje ahorita
}
else
{
estado(peticion.status);
cargando();
}
}
}
peticion.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=ISO-8859-1');
peticion.send(null);
}