Código AJAX:
Ver original
function GetXmlHttpObject(handler) { var objXMLHttp=null if (window.XMLHttpRequest) { objXMLHttp=new XMLHttpRequest() } else if (window.ActiveXObject) { objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP") } return objXMLHttp } function stateChanged(proceso, caja) { if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") { // document.getElementById(caja).innerHTML= xmlHttp.responseText; document.getElementById(caja).innerHTML=proceso } else { //alert(xmlHttp.status); document.getElementById(caja).innerHTML = '<div style="width:16px; margin:auto"><img src="images/ajax-loader.gif" width="16" height="16"></div>'; } } // Will populate data based on input function htmlData(url, caja, qStr) { if (url.length==0) { document.getElementById(caja).innerHTML=""; return; } xmlHttp=GetXmlHttpObject() if (xmlHttp==null) { alert ("Su navegador no soporta este tipo de procedimiento, por favor actualice el mismo."); return; } url=url+"?"+qStr; url=url+"&sid="+Math.random(); // xmlHttp.onreadystatechange=stateChanged; [B] xmlHttp.onreadystatechange=function() { stateChanged( xmlHttp.responseText, caja); }[/B] xmlHttp.open("GET",url,true) ; xmlHttp.send(null); }
Quisiera saber algunas cosas:
1.- Si me pueden decir si esta correcto, el llamado lo hago asi:
<a href="javascript:void%200" onclick="htmlData('cambia.asp', 'div_a_cambiar', 'en=31&variables=0')">
Me funciona bien, pero he visto que en IE a veces me marca error:
Mensaje: El dato necesario para completar esta operación no está disponible todavía.
Línea: 46
Carácter: 44
Código: 0
ajax_cambia.js
Donde la linea 46 es la que puse en negritas en el codigo.
2.- Como podria implementarle algun manejador de error para que si tarda demasiado el servidor o no se conecta a la pagina esta de un alert o algo avisandolo.
3.- En el codigo que devuelve el archivo que procesa la info, en este caso cambia.asp se puede enviar codigo de javascript? he hecho algunas pruebas con un player de video que se carga mediante codigo javascript y en IE no me lo carga.
Creo que por el momento son las dudas al respecto, espero su ayuda como siempre y muchas gracias anticipadas...DLB