Sys.Net.XMLHttpExecutor (Clase)
Actualización: noviembre 2007
Realiza solicitudes de red asincrónicas mediante la compatibilidad XMLHTTP del explorador.
Espacio de nombres:Sys.Net
Hereda: nada
var executor = new Sys.Net.XMLHttpExecutor();
Members
Name |
Description |
---|---|
Inicializa una nueva instancia de la clase Sys.Net.XMLHttpExecutor cuando se implementa en una clase derivada. |
|
Detiene las solicitudes de red pendientes emitidas por el elemento de ejecución. |
|
Ejecuta una solicitud de red como se especifica en la instancia de WebRequest asociada. |
|
Devuelve los encabezados de respuesta. |
|
Obtiene el valor de un encabezado de respuesta especificado. |
|
Devuelve un valor que indica si se anuló el elemento de ejecución. |
|
Devuelve un valor que indica si la solicitud de red terminó sin que se anulara o agotara su tiempo de espera. |
|
Obtiene la representación textual del cuerpo de la respuesta. |
|
Devuelve un valor que indica si el elemento de ejecución ha reenviado la solicitud al objeto XMLHTTP del explorador. |
|
Obtiene el código de estado del objeto XMLHTTP del explorador. |
|
Obtiene el texto de estado del objeto XMLHTTP del explorador. |
|
Devuelve un valor que indica si se agotó el tiempo de espera del elemento de ejecución. |
|
Devuelve un objeto XMLDOM que contiene la respuesta XML del objeto XMLHTTP del explorador. |
Comentarios
La clase XmlHttpExecutor actúa como el elemento de ejecución y es una implementación de la clase abstracta WebRequestExecutor.
Como el elemento de ejecución predeterminado ya está definido, no es necesario crear una instancia de la clase y asociarla a la solicitud web. Sin embargo, si define un elemento de ejecución personalizado, debe crear una instancia de dicho elemento y establecerla como el elemento de ejecución predeterminado de la solicitud web.
Una vez completada la llamada a la red, el objeto XmlHttpExecutor sólo se debe utilizar para obtener los datos de la respuesta y, a continuación, descartarse.
Nota
Para obtener más información sobre el objeto XMLHTTP, vea About Native XMLHTTP.
Ejemplo
En el ejemplo siguiente se muestra cómo se utilizan los métodos y propiedades de la clase XmlHttpExecutor. En el ejemplo se muestra una página web y el script de cliente que interactúa con la clase XmlHttpExecutor.
var resultElementId;
function pageLoad()
{
resultElementId = $get("ResultId");
}
// This function aborts a Web request.
function AbortWebRequest()
{
// Create the WebRequest object.
wRequest = new Sys.Net.WebRequest();
// Set the request Url.
wRequest.set_url("getTarget.htm");
// Clear the results area.
resultElementId.innerHTML = "";
// Set the Completed event handler,
// for processing return data
wRequest.add_completed(OnCompleted);
// Make the request.
wRequest.invoke();
// Get the current executor.
var executor = wRequest.get_executor();
// Abort the request.
executor.abort();
// Check if the executor is aborted.
var execAborted =
executor.get_aborted();
alert("Executor aborted: " + execAborted);
}
// This function executes a Web request.
function ExecuteWebRequest()
{
// Create the WebRequest object.
wRequest = new Sys.Net.WebRequest();
// Set the request Url.
wRequest.set_url("getTarget.htm");
// Set the Completed event handler, for processing return data
wRequest.add_completed(OnCompleted);
// Clear the results area.
resultElementId.innerHTML = "";
// To use executeRequest you must instantiate the
// executor, assign it to the Web request instance,
// then call the executeRequest function.
// Note: Normally to make a Web request you use
// the invoke method of the WebRequest instance.
var executor = new Sys.Net.XMLHttpExecutor();
wRequest.set_executor(executor);
executor.executeRequest();
var started = executor.get_started();
alert("Executor started: " + started);
}
// This is the event handler called after
// the Web request returns.
function OnCompleted(executor, eventArgs)
{
if(executor.get_responseAvailable())
{
// Get the Web request instance.
var webReq = executor.get_webRequest();
// Display request Url.
alert(webReq.get_url());
// Clear the previous results.
resultElementId.innerHTML = "";
// Display the Web request status.
resultElementId.innerHTML +=
"Request Status: [" + executor.get_statusCode() + " " +
executor.get_statusText() + "]" + "<br/>";
// Display the Web request headers.
resultElementId.innerHTML += "Headers: <br/>";
// Get all the headers.
resultElementId.innerHTML +=
"All Request Headers: " +
executor.getAllResponseHeaders() + "<br/>";
// Get a specific header.
resultElementId.innerHTML +=
"Content-Type Header: " +
executor.getResponseHeader("Content-Type") +
"<br/>";
// Display Web request body.
resultElementId.innerHTML += "Body: <br/>";
resultElementId.innerText +=
executor.get_responseData();
}
else
{
if (executor.get_timedOut())
alert("Timed Out");
else
if (executor.get_aborted())
alert("Aborted");
}
}
// This is the event handler called after
// the Web request returns. It is designed
// for Web requests that return XML.
function OnSucceededXml(executor, eventArgs)
{
if (executor.get_responseAvailable())
{
// Display XML.
if (document.all)
resultElementId.innerText += executor.get_xml().xml;
else
// Firefox
resultElementId.textContent += "First node: " +
executor.get_xml().documentElement.nodeName;
}
else
{
if (executor.get_timedOut())
alert("Timed Out");
else
if (executor.get_aborted())
alert("Aborted");
}
}
// This function executes a Web request
// to get XML data.
function GetXml()
{
// Create the WebRequest object.
wRequest = new Sys.Net.WebRequest();
// Set the request Url.
wRequest.set_url("getTarget.xml");
// Set the Completed event handler
// for processing return data.
wRequest.add_completed(OnSucceededXml);
// Clear the results area.
resultElementId.innerText = "";
// Invoke the Web request.
wRequest.invoke();
}
// This function aborts a Web request.
function AbortWebRequest()
{
// Create the WebRequest object.
wRequest = new Sys.Net.WebRequest();
// Set the request Url.
wRequest.set_url("getTarget.htm");
// Clear the results area.
resultElementId.innerHTML = "";
// Set the Completed event handler,
// for processing return data
wRequest.add_completed(OnCompleted);
// Make the request.
wRequest.invoke();
// Get the current executor.
var executor = wRequest.get_executor();
// Abort the request.
executor.abort();
// Check if the executor is aborted.
var execAborted =
executor.get_aborted();
alert("Executor aborted: " + execAborted);
}
Vea también
Referencia
Sys.Net.WebRequestExecutor (Clase)