Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/10/2009, 21:50
Avatar de sjam7
sjam7
 
Fecha de Ingreso: diciembre-2001
Ubicación: Guadalajara, Mexico
Mensajes: 3.672
Antigüedad: 23 años
Puntos: 16
Chequear Script

Hola, tengo este script:
Código AJAX:
Ver original
  1. function GetXmlHttpObject(handler)
  2. {
  3.    var objXMLHttp=null
  4.    if (window.XMLHttpRequest)
  5.    {
  6.        objXMLHttp=new XMLHttpRequest()
  7.    }
  8.    else if (window.ActiveXObject)
  9.    {
  10.        objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP")
  11.    }
  12.    return objXMLHttp
  13. }
  14.  
  15. function stateChanged(proceso, caja)
  16. {
  17.    if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
  18.    {
  19. //    document.getElementById(caja).innerHTML= xmlHttp.responseText;
  20.     document.getElementById(caja).innerHTML=proceso
  21.    }
  22.    else {
  23.      //alert(xmlHttp.status);
  24.      document.getElementById(caja).innerHTML = '<div style="width:16px; margin:auto"><img src="images/ajax-loader.gif" width="16" height="16"></div>';
  25.    }
  26. }
  27.  
  28. // Will populate data based on input
  29. function htmlData(url, caja, qStr)
  30. {
  31.    if (url.length==0)
  32.    {
  33.        document.getElementById(caja).innerHTML="";
  34.        return;
  35.    }
  36.    xmlHttp=GetXmlHttpObject()
  37.    if (xmlHttp==null)
  38.    {
  39.        alert ("Su navegador no soporta este tipo de procedimiento, por favor actualice el mismo.");
  40.        return;
  41.    }
  42.    
  43.    url=url+"?"+qStr;
  44.    url=url+"&sid="+Math.random();
  45. //   xmlHttp.onreadystatechange=stateChanged;
  46.   [B] xmlHttp.onreadystatechange=function() { stateChanged( xmlHttp.responseText, caja); }[/B]  
  47.    
  48.    xmlHttp.open("GET",url,true) ;
  49.    xmlHttp.send(null);
  50. }

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