Me pregunto ¿cuál es la mejor manera de detener las presentaciones duplicadas al usar jquery y ajax?¿Detener las sumisiones duplicadas de Ajax?
llego a tener 2 formas posibles, pero no está seguro de si se trata de la única 2.
El Ajax bloquea Marcha todos los botones hasta que se realiza la solicitud. 2 problemas que veo con esto es que utilizo el diálogo de modelo de jquery, así que no sé cuán fácil sería desactivar esos botones, ya que no estoy seguro de si tienen id. Segundo, si la solicitud se bloquea, el usuario realmente no tiene forma de volver a intentarlo ya que todos los botones están desactivados.
Estoy buscando algo llamado AjaxQueue en este momento No tengo ni idea de si es lo que necesito o cómo funciona desde el sitio donde aparentemente el plugin está fuera de servicio por mantenimiento.
http://docs.jquery.com/AjaxQueue
Editar
Creo que este es un spin off de lo que estaba viendo.
http://www.protofunc.com/scripts/jquery/ajaxManager/
El único problema que veo con este ajaxManager es que creo que tengo que cambiar todos mis seres $ .post, .Consulte $ y $ .ajax a su tipo.
Pero, ¿qué sucede si necesito un parámetro especial de $ .ajax? O ese hecho me gusta usar .post y .get.
Editar 2
creo que puede tomar en todas las opciones $ .ajax. Todavía estoy investigando. Sin embargo, de lo que no estoy seguro ahora es si puedo usar el mismo constructor para todas las solicitudes que utilizarán las mismas opciones.
First you have to construct/configure a new Ajaxmanager
//create an ajaxmanager named someAjaxProfileName
var someManagedAjax = $.manageAjax.create('someAjaxProfileName', {
queue: true,
cacheResponse: true
});
¿O tengo que hacer lo anterior todas las veces?
¿No sería más fácil usar la propiedad 'timeout'? ¿O no funciona de la manera en que creo? :) –
@Vivin - Buen punto. A menos que haya alguna otra lógica que desee usar en 'setTimeout()' para decidir si se cancela o no, puede usar la propiedad 'timeout'. La variable 'request' es una bandera como en su respuesta, pero con el beneficio adicional de proporcionar funcionalidad' abort() 'si es necesario. – user113716