Red de conocimiento informático - Conocimiento del nombre de dominio - Cómo evitar que se envíen solicitudes repetidas de Ajax

Cómo evitar que se envíen solicitudes repetidas de Ajax

Cada clic envía una solicitud al backend. La siguiente demostración implementa que después de hacer clic en el botón varias veces, solo se garantiza que la última solicitud de clic tendrá éxito.

¿botón lt? id="botón1 " >botón 1 lt;/botón gt;

botón lt? id="botón2 " >botón2 lt/botón gt;

¿botón lt? id="botón3 " >botón3 lt/botón gt;

ltscript gt

var? ¿Solicitud pendiente? =?{};

jQuery.ajaxPrefilter(function(?options,?original,?jqXHR?)?{

var?key?=?options.url

consola .log(clave);

¿Si? (!pendingRequests[clave])? {

¿Solicitudes pendientes[clave]? >} De lo contrario {

//jqxhr . abort();? //Activar el envío después del abandono

Abort(); //Abort() Activar el envío por primera vez.

var? =?options.complete

¿Opciones? =?function(jqXHR,?textStatus) ?

¿Solicitud pendiente[clave]?

Si? {

completar.apply(este ,? argumento

}

}; >});

es! - ?¿Comenzar a cargar la lista de aplicaciones de forma asincrónica? - gt;

$("#botón1 "). live("hacer clic", función()?{

$.Ajax(' config/Ajax/appinfolistfetcher . JSON',?{

Tipo: 'POST',

Datos: ? {param1: valor1,

param2: valor2,

},

Éxito: p>

//Backend los datos se vuelven a escribir en la página

},

Error: función (jqXHR, estado del texto, ?errorThrown){

if(errorThrown?!= ?Abort'){

//Método de cancelación ejecutado después de llamar a ajax

Alerta ("¡Error al cargar la aplicación!");

}

}

});

lt! - ?Fin de la carga asincrónica de la lista de aplicaciones? - gt;

});

lt/script gt;