2012-02-08 16 views
5

Realizo llamadas asincrónicas para la misma URL varias veces, pero la respuesta fue secuencial. Consulte la imagen adjunta. La solicitud se inició solo después de que se completa la primera solicitud, lo mismo ocurre con las solicitudes subsiguientes.Solicitudes múltiples de Ajax para la misma URL

enter image description here

Pero si la URL es diferente las respuestas no son secuenciales. Por favor, confírmeme si se solicita una URL, ¿no haría Firefox otra solicitud de la misma URL?

+0

¿Comprobó que su interfaz puede manejar múltiples solicitudes? – fyr

+0

Creo que la barra de duración muestra varias etapas, al pasar sobre ella aparece la búsqueda de DNS y conectarse, si fuera la interfaz del lado del servidor que no admite simultaneidad, verá una losa verde para la segunda solicitud comenzando aproximadamente en el mismo punto. –

+0

Corrija si mi entendimiento es incorrecto en esto. Cuando cierro la barra de estado para la segunda solicitud, aparece "+ 1.44s iniciado", lo que significa que inicia la solicitud después de completar la primera solicitud que se completa en 1.44s. Pero si utilizo URL diferentes, cada solicitud tiene el tiempo Iniciado como "0" –

Respuesta

8

La memoria caché de Necko solo puede manejar un escritor por entrada de caché. Por lo tanto, si realiza varias solicitudes para la misma URL, la primera abrirá la entrada de caché para escribir y las últimas se bloquearán en la entrada de caché abierta hasta que termine la primera. Hay trabajo en curso para volver a crear la memoria caché para eliminar esta restricción.

+0

Gracias Boris !!! –

+2

¿Sufijo un parámetro de cadena de consulta como? _cacheBuster = [randomNumber] ¿resuelve la limitación? –

+0

Sí. Eso es lo que hice. De hecho, agregué la marca de tiempo para diferenciar las solicitudes. –

1

En general, los navegadores tendrán un límite en la cantidad de solicitudes concurrentes que se servirán a un nombre de host particular, en el pasado esto era 2, pero la mayoría de los navegadores ahora han planteado esto. La definición de un proxy también puede afectar estos límites en algunos navegadores. Una vez más, estos se aplican por el lado del cliente. Sin embargo, debería ser más de uno en cualquier caso. Es posible que Firebug también esté reduciendo el límite. Consulte sobre: ​​config para configuraciones concurrentes.

¿Estás seguro de que no estás esperando hasta que se ejecute la devolución de llamada antes de lanzar la siguiente solicitud dado que solo tienes una, sospecho que esto realmente está sucediendo?

+0

Gracias wtfcoder, estoy muy seguro de que el control no espera hacer una segunda solicitud hasta la devolución de llamada. Pero cuando veo la respuesta en firebug es secuencial. si firefox restringiría hacer una segunda solicitud para la misma URL que está esperando una respuesta. –

Cuestiones relacionadas