Detalles de XMLHttpRequest y hacer solicitudes asincrónicas en AjaxIndependientemente de cómo el tipo XMLHttpRequest es una instancia, y sin importar el navegador o plataforma, XMLHttpRequest tiene el mismo conjunto de métodos y propiedades. Tabla 4-1 define las propiedades y métodos. Yo no dar más detalles de los métodos, ya que se utilizan en todo el artículo. Sin embargo, quiero prestar especial atención a las propiedades, ya que se utilizan ampliamente. Cuando una solicitud se ha recuperado de datos, cuatro propiedades son utilizadas para indicar cómo la solicitud le fue. Considere el siguiente código HTML, que hace referencia a las cuatro propiedades y se llama después de que el método de envío ha concluido: document.getElementById ( 'httpcode'). innerHTML = xmlhttp.status; document.getElementById ( 'httpStatus'). innerHTML = xmlhttp.statusText; document.getElementById ( 'resultado'). innerHTML = xmlhttp.responseText; document.getElementById ( ' xmlresult '). innerHTML = xmlhttp.responseXML;
Las cuatro propiedades se pueden subdividir en dos categorías: resultados y de estado HTTP. El estado y las propiedades de statusText recuperar los códigos de resultado de HTTP. La propiedad Estado contiene un valor entero, tales como 200 para el éxito. La propiedad statusText contiene una representación textual del código de resultado de HTTP, como en Aceptar. El responseText y propiedades responseXML contiene el resultado de la petición HTTP. La diferencia entre las dos propiedades es que responseText contiene un búfer de cadena de los resultados, y las referencias responseXML una representación XML DOM de los resultados. Hacer solicitudes asincrónicasEs posible utilizar el objeto XMLHttpRequest de manera sincrónica, es decir, el momento de enviar se llama, el navegador deja de procesar mensajes de otros y espera una respuesta. Pero es una mala idea utilizar el objeto XMLHttpRequest de manera sincrónica, como que se bloquee el navegador. Por el momento, ignorando el código LoadAtomFeed y centrándose en XMLHttpRequest, vamos a ver cómo el navegador puede ser bloqueado. El siguiente ejemplo es una página ASP.NET que cuelga durante diez segundos, y se hace referencia el objeto XMLHttpRequest: <% @ Page Language = "C #"%> La muestra de ASP.NET está escrito utilizando el lenguaje de programación C #, y no hay una sola instrucción, System.Threading.Thread.Sleep. La única instrucción hace que el flujo actual de dormir durante diez segundos. La solución es utilizar un XMLHttpRequest asincrónica Ajax. Una solicitud asincrónica no bloqueará el navegador, y el usuario puede seguir haciendo clic o utilizar las otras pestañas del navegador. El siguiente código es la aplicación Ajax correctamente escrita para utilizar una solicitud asincrónica:
Hay varias nuevas incorporaciones a la aplicación Ajax reescrito, y se ocupan de las cuestiones técnicas de la carga de contenido de forma asincrónica. Vamos a comenzar por centrarse en la función GetIt. La aplicación de GetIt es similar a los anteriores ejemplos de aplicaciones Ajax, salvo que el tercer parámetro del método abierto es cierto que indique que la solicitud será asincrónica. Esto significa que cuando el método de envío que se llama , devolverá de inmediato. XMLHttpRequest Cuando opera en modo asíncrono, la retroalimentación se da a la persona que llama en el estado de la petición. Onreadystatechange La propiedad es una función que recibe la retroalimentación. Es importante señalar que la función de retroalimentación debe ser asignado antes de cada envío, ya que al finalizar la solicitud de la propiedad onreadystatechange se restablece. Esto es evidente en el código fuente de Mozilla y Firefox. La propiedad onreadstatechange se le asigna la función de AsyncUpdateEvent. En la aplicación de AsyncUpdateEvent es una sentencia switch que las pruebas del estado actual de la solicitud. Cuando se hace una solicitud asincrónica, el guión es libre de continuar la ejecución de código. Esto podría causar problemas si la secuencia de comandos intenta leer los resultados de la solicitud antes de la petición se ha completado. Uso de la propiedad readyState, es posible conocer el estadio de la solicitud HTTP. La propiedad readyState puede contener uno de los cinco valores, donde cada valor representa un estado de la solicitud: • 0: La instancia de XMLHttpRequest está en un estado incoherente, y los datos de resultado no debe ser la referencia. • 1: La solicitud está en curso, y los datos de resultado no debe ser recuperado. • 2: La solicitud ha descargado los datos de los resultados y se está preparando para referencia. • 3: La escritura se puede interactuar con la instancia de XMLHttpRequest, aunque los datos no están completamente cargadas. • 4: La solicitud y el resultado de los datos están completos y se han terminado. La solicitud de los Estados parece indicar que es posible manipular varias propiedades en diferentes estados. El problema es que no todos los navegadores soportan la misma propiedad que los estados en los códigos de un mismo Estado. La cruz-plataforma única solución es hacer referencia a las propiedades de resultado XMLHttpRequest (estado, statusText, responseText, y responseXML) cuando el estado de la solicitud es igual a 4. Cuando el estado de la solicitud es de 4, usted puede estar seguro de que las propiedades de resultado contiene un valor válido. La ejecución de los resultados de la aplicación asincrónica Ajax en una llamada que se hizo, y el navegador no está bloqueado. Puede hacer clic en el botón, abrir un nuevo navegador, y navegar a otro sitio Web. un artículo presentado por Sonja Lande Descargo de responsabilidad:Nuestro sitio web no es responsable por el contenido de este artículo. Webarticles es un recurso de información gratuito. Importante: Este artículo "XMLHttpRequest Detalles y Making solicitudes asincrónicas en Ajax" fue traducida por un software automático. Sentimos pena por los errores de ortografía que pueda haber ocurrido. Gracias por su comprensión.
|
||||||||
| Online: 317 users browsing the articles directory |
|
|