Compartir a través de


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

Sys.Net.XMLHttpExecutor (Constructor)

Inicializa una nueva instancia de la clase Sys.Net.XMLHttpExecutor cuando se implementa en una clase derivada.

Sys.Net.XmlHttpExecutor abort (Método)

Detiene las solicitudes de red pendientes emitidas por el elemento de ejecución.

Sys.Net.XmlHttpExecutor executeRequest (Método)

Ejecuta una solicitud de red como se especifica en la instancia de WebRequest asociada.

Sys.Net.XmlHttpExecutor.getAllResponseHeaders (Método)

Devuelve los encabezados de respuesta.

Sys.Net.WebRequestExecutor.getResponseHeader (Método)

Sys.Net.XmlHttpExecutor.getResponseHeader (Método)

Obtiene el valor de un encabezado de respuesta especificado.

Sys.Net.XmlHttpExecutor aborted (Propiedad)

Devuelve un valor que indica si se anuló el elemento de ejecución.

Sys.Net.XmlHttpExecutor responseAvailable (Propiedad)

Devuelve un valor que indica si la solicitud de red terminó sin que se anulara o agotara su tiempo de espera.

Sys.Net.XmlHttpExecutor responseData (Propiedad)

Obtiene la representación textual del cuerpo de la respuesta.

Sys.Net.XmlHttpExecutor started (Propiedad)

Devuelve un valor que indica si el elemento de ejecución ha reenviado la solicitud al objeto XMLHTTP del explorador.

Sys.Net.XmlHttpExecutor statusCode (Propiedad)

Obtiene el código de estado del objeto XMLHTTP del explorador.

Sys.Net.XmlHttpExecutor statusText (Propiedad)

Obtiene el texto de estado del objeto XMLHTTP del explorador.

Sys.Net.XmlHttpExecutor timedOut (Propiedad)

Devuelve un valor que indica si se agotó el tiempo de espera del elemento de ejecución.

Sys.Net.XmlHttpExecutor xml (Propiedad)

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)

Sys.Net.WebRequestManager (Clase)

Sys.Net.WebRequest (Clase)