2011-10-28 24 views

Respuesta

23

Es asincrónico porque no bloquea el navegador. Si lanza una solicitud de Ajax, el usuario puede seguir trabajando mientras la solicitud está esperando una respuesta. Cuando el servidor devuelve la respuesta, se ejecuta una devolución de llamada para manejarla.

Puede hacer que el sincrónica XMLHttpRequest si lo desea, y si lo hace, el navegador se bloquea, mientras que la solicitud es excepcional (lo que la mayoría de las veces esto no es apropiado)

+2

-1 Asincrónico significa "no al mismo tiempo". No explicó qué era "no al mismo tiempo" sobre AJAX. Su respuesta lo hace sonar como que puede trabajar al mismo tiempo que la llamada, por lo que se llama asincrónico, lo que no tiene sentido gramaticalmente. – gcdev

+0

@gcdev Creo que esta confusión se debe a que, como se mencionó anteriormente [aquí] (https://stackoverflow.com/questions/748175/asynchronous-vs-synchronous-execution-what-does-it-really-mean#comment57854159_748189), "Asíncrono" y "Sincrónico" en este contexto no se refieren a la relación de temporización entre dos o más tareas; más bien se refieren a la relación entre una tarea y el reloj. Por lo tanto, esta respuesta tiene sentido. – today

0

En pocas palabras, no tiene por qué recarga toda la página para obtener nueva información. Piense en un cliente de correo electrónico. No necesitaría actualizar la página para ver nuevos correos electrónicos. Ajax simplemente saca el servidor cada dos minutos para ver si hay nuevos correos electrónicos, si es así, visualícelos

+1

En mi humilde opinión, esta respuesta da una imagen equivocada de lo que es AJAX, y asincronía en general. Ni AJAX ni la asincronía equivalen a un simple sondeo repetido para evitar que el usuario tenga que actualizar una página manualmente. La asincronía se trata de no bloquear (p.no bloqueando el procesamiento adicional de la página/script mientras alguna solicitud de recursos está pendiente). Esta respuesta es correcta en el sentido de que, aparte de la asincronía, AJAX también permite cargar nuevos datos y actualizar la página actual sin cargar una página completamente nueva. – stakx

15

Es asincrónico porque el cliente y el servidor se ejecutan independientemente el uno del otro durante la llamada a la función.

Durante una llamada de función normal, realiza la llamada y la función de llamada no puede volver a ejecutar hasta que la llamada a la función finalice y regrese. El que llama y el que llama están siempre sincronizados.

Durante una llamada a función asincrónica, realiza la llamada y luego devuelve inmediatamente a la persona que llama. El destinatario devuelve un valor un tiempo indeterminado más tarde. Esa "cantidad indeterminada de tiempo" significa que la persona que llama y quien llama ya no están sincronizados, por lo que es asincrónico.

+0

Gracias - ¡Finalmente entiendo exactamente qué se considera "sincrónico" y "asincrónico"! Siempre me ha intrigado que cuando ejecuta dos llamadas AJAX al mismo tiempo (sincronizadas) se las llama "asincrónicas". Lo explicaste muy bien. – gcdev

0

I.e. no "bloqueando", en el contexto de la ejecución de Javascript, ya que la respuesta será manejada por un bucle de evento.

-1

El cliente y el servidor se ejecutan independientemente el uno del otro durante la llamada a la función.

Llamada a función normal: realiza la llamada y la función de llamada no puede volver a ejecutar hasta que la llamada a la función finaliza y regresa. El que llama y el que llama están siempre sincronizados.

Llamada a función asíncrona: realiza la llamada y luego controla la devolución inmediatamente a la persona que llama. El destinatario devuelve un valor de tiempo indefinido más tarde. Esa "cantidad indefinida de tiempo" significa que la persona que llama y quien llama ya no están sincronizados, por lo que es asincrónico.

-1

Sincrónico siempre mantiene la secuencia cuando se llama, pero asíncrono no mantiene la secuencia.

Cuestiones relacionadas