HTTPWebRequest

He estado jugando un rato con los famosos HTTP Web Requests, que desde que se usan en GMail o Google Suggest, para evitar recargas de páginas se han puesto muy de moda.

La forma de utilizarlo es realmente simple, ya que todo se basa en utilizar el correspondiente objeto para leer los datos remotos que necesitemos. La principal dificultad estriba en que para Internet Explorer tenemos diferentes componentes ActiveX que podemos instanciar, y no todos tienen porque estar instalados en el sistema. En cambio los navegadores basados en Gecko, lo soportan nativamente, y Opera solamente a partir de la versión 8.

La referencia más sencilla, es la que habla de IXMLHTTPRequest en el MSDN.

Aunque estas clases fueron diseñadas inicialmente para obtener datos XML, virtualmente funcionan con cualquier formato.

El siguiente ejemplo, desde Javascript, lee el código HTML de si mismo, y lo muestra por pantalla. Esta idea es perfectamente aplicable en nuestros desarrollos para evitar la recarga de páginas y las soluciones truculentas con frames/iframes.

<html>
<body>
<script language="Javascript">
var oHttp=false;
/*@cc_on @*/
/*@if (@_jscript_version>=5)
{
var asParsers=['Msxml2.XMLHTTP.5.0', 'Msxml2.XMLHTTP.4.0',
'Msxml2.XMLHTTP.3.0', 'Msxml2.XMLHTTP', 'Microsoft.XMLHTTP'];
for (var iCont=0; ((!oHttp) && (iCont<asParsers.length)); iCont++)
{
try
{
oHttp=new ActiveXObject(asParsers[iCont]);
}
catch(e)
{
oHttp=false;
}
}
}
@end @*/
if ((!oHttp) && (typeof XMLHttpRequest!='undefined'))
{
oHttp=new XMLHttpRequest();
}
oHttp.open('GET', 'httpwebrequest.html', false);
oHttp.send(null);
alert(oHttp.responseText);
</script>
</body>
</html>

Aquí podéis ver en acción el anterior código (probado con Internet Explorer 6 SP2, Firefox 1.0+ y Opera 8.0 beta 1).

Con XMLHttpRequest, se abren nuevas posibilidades al Javascript: Lectores de feeds, refresco inteligente, …

Utilizándolo asíncronamente, podemos resolver la sincronización de combos anidados de forma sencilla, o por qué no, implementar un juego multijugador con DHTML.

1 comentario en “HTTPWebRequest”

  1. Yo descubrí el XMLHttpRequest hace como un año o así, desarrollando una web con Lotus Notes (solo de recordarlo se me ponen los pelos como escarpias :S ) y la verdad es q me pareció muy interesante.

    Hasta entonces habia trabajado unicamente en aplicaciones de escritorio, en la q puedes hacer consultas a Bdd cuando se necesite, no como en ASP que o lo cargabas todo a la vez, o cada vez q necesitabas algun dato (como recargar una combobox) tenias q recargar la página, total un coñazo.

    La verdad es que esto es muy interesante y ahora q me han pasado a un proyecto de ASP vere como puedo encajketarlo para mejorar el rendimiento jejejeje

Deja un comentario