ASP.NET MVC y Ajax, solicitudes concurrentes?

¡Novato de AJAX aquí!
Por el momento, en mi aplicación web ASP.NET MVC, parece que mis solicitudes de AJAX están siendo agrupadas o en cola, no estoy seguro.
No parece que se completen las solicitudes hasta que la solicitud anterior haya finalizado.
¿Cómo hago para que las solicitudes vuelvan de forma independiente?
No necesariamente quiero que alguien me dé la respuesta, pero tal vez algunos enlaces a buenos tutoriales o recursos que podrían ayudar. Gracias

Estoy expandiendo la respuesta de Lachlan Roche, que es correcta.

El marco ASP.NET tendrá solicitudes de “un solo hilo” que se ocupen del scope de la sesión (un recurso global), para evitar que una solicitud interfiera con otra. En WebForms, creo que puede usar la directiva de la Página para especificar que las páginas individuales no usen Session y, por lo tanto, no es necesario tratarlas sincrónicamente de esta manera.

El problema es que en ASP.NET MVC todas las solicitudes usan Session , porque se usa para implementar TempData. Puede desactivar completamente el estado de la sesión, como lo señaló Lachlan Roche, o puede tratar esto caso por caso.

Una posible solución podría ser iniciar sus propios hilos de fondo para procesar cualquier código de larga ejecución, de modo que la solicitud inicial se “complete” lo más rápido posible.

ASP.NET procesará solicitudes en serie por sesión, a menos que las sesiones estén configuradas como deshabilitadas o solo leídas en web.config a través del atributo enableSessionState en el elemento de páginas.

Como se trata de una configuración de página, esto no afectará a los controladores MVC y seguirán sujetos al procesamiento de solicitud en serie.

Curiosamente, incluso con sesiones deshabilitadas o configuradas para solo lectura, aún podemos leer y escribir datos de sesión. Parece que solo afecta el locking de la sesión que causa el procesamiento de solicitud en serie.

   

Las páginas también pueden tener una propiedad enableSessionState, aunque esto no es relevante para las vistas MVC.

 <%@ Page EnableSessionState="True" %> 

Con el lanzamiento de ASP.MVC 3, ahora puede agregar un atributo a sus controladores para marcar la sesión como de solo lectura, lo que permite que las acciones sean llamadas al mismo tiempo desde el mismo cliente.

Soporte de controlador sin sesión:

Sessionless Controller es otra gran característica nueva en ASP.NET MVC 3. Con Sessionless Controller puede controlar fácilmente el comportamiento de la sesión para los controladores. Por ejemplo, puede hacer que la sesión de su HomeController sea Disabled o ReadOnly, permitiendo la ejecución de solicitudes simultáneas para un solo usuario. Para más detalles, consulte Solicitudes concurrentes en ASP.NET MVC y HowTo: Controlador sin sesión en MVC3: ¿qué y por qué? .

– de este artículo de DZone .

Al agregar SessionState(SessionStateBehaviour.Disabled) a su controlador, el tiempo de ejecución le permitirá invocar múltiples acciones al mismo tiempo desde la misma sesión del navegador.

Lamentablemente, no creo que haya una manera de marcar una acción para desactivar la sesión solo cuando se invoca esa acción, por lo que si tienes un controlador que tiene algunas acciones que requieren la sesión y otras que no, necesitarás para mover los que no lo hacen a un controlador por separado.

En versiones posteriores de ASP MVC, puede decorar clases de controlador individuales con el SessionStateAttribute

 [System.Web.Mvc.SessionState(System.Web.SessionState.SessionStateBehavior.ReadOnly)] public class MyController : Controller { } 

Desde que se lanzó .NET Framework v3.0, puede usar la enumeración “SessionStateBehavior” con SessionStateAttribute:

 [SessionState(System.Web.SessionState.SessionStateBehavior.ReadOnly)] public class MyController : BaseController { } 

La solicitud simultánea bien es más dependiente del navegador también si disparas supones 10 solicitudes concurrentes a una acción Usando AJax en Mozilla y la misma usando IE 8 entonces encontrarás que Mozilla tiene estilo para disparar una solicitud esperar su respuesta y luego disparar en segundo lugar en … para esto es una por una, mientras que en IE * esto dispara alrededor de 6 solicitudes concurrentes a la vez al Servidor.

Así que la Solicitud simultánea también depende del tipo de navegador.

Sugiero usar jQuery para sus necesidades de ajax con asp.net mvc, lo he usado exclusivamente y ha sido extremadamente fácil.

En cuanto a los tutoriales, miraré esto: http://docs.jquery.com/Ajax

Hay un montón de opciones para jugar y también sugiero descargar Firebug para que pueda ver las solicitudes de lanzamiento desde su página de forma asincrónica y ver si disparan y qué devuelven, etc.

Al igual que el otro lado, la solicitud AJAX es asíncrona y no se pone en cola y todos regresan independientemente cuando terminan, así que si miras en Firebug será fácil ver lo que está sucediendo detrás de escena y antes de que el depurador se ponga golpear