2011-03-02 13 views
5

He estado luchando con una situación en un sitio donde los clics de los usuarios generan solicitudes AJAX, p. con algún efecto visual cuando llega la respuesta. A veces sucede que el usuario no espera hasta que se realiza la solicitud (aunque ve un indicador de carga) y comienza a hacer clic en otros elementos como loco. Debido a que, en principio, no puedo y no quiero deshabilitar esa posibilidad, he intentado (con mayor o menor éxito) garantizar que cada vez que se active una nueva solicitud, la anterior se anule (en el lado del cliente) y sus controladores ya no estén disponibles. llamado - cualquiera que sea la solicitud que llegue último gana.Mecanismo de cola para solicitudes AJAX del lado del servidor

Aunque algo exitoso en el lado del cliente, ahora me pregunto si hay alguna forma de simular un comportamiento similar en el servidor. Como no puedo matar la solicitud anterior, solo desconectarme de ella, seguirá ejecutándose hasta el final y consumirá recursos valiosos. Si el usuario hace clic en 20 elementos, solo verá el resultado de la última solicitud, pero seguirá habiendo 20 solicitudes en el servidor desperdiciando la CPU haciendo un trabajo inútil.

¿Hay alguna forma de implementar una estrategia de ganar-ganar para solicitudes múltiples del mismo recurso en ASP.NET/IIS? Supongo que las solicitudes están de todos modos internamente en cola, y lo que necesitaría es para el IIS cuando intenta dequeue el siguiente, simplemente eche un vistazo si hay otros y solo sirva el último de la misma sesión.

Respuesta

1

Sé que en ASP en IIS puede probar isClientConnected y cancelar si el cliente se ha desconectado.

Creo que algo similar existiría en la mayoría de las plataformas.

Pero no sé cómo funciona con ajax?

+0

HttpContext.Reponse realmente tiene esta propiedad, parece que también funciona :) –

Cuestiones relacionadas