224 votes

Arrêter toutes les requêtes ajax actives dans jQuery

J’ai un problème, lorsque vous soumettez un formulaire tous les fail de requête ajax active et cet événement d’erreur de déclencheurs.

Comment arrêter tous les requêtes ajax actives dans jQuery sans événement lors du déclenchement d’erreur ?

282voto

Darin Dimitrov Points 528142

Chaque fois que vous créez une requête ajax, vous pouvez utiliser une variable pour stocker :

Ensuite, vous pouvez abandonner la demande :

Vous pourriez utiliser un tableau de suivi de toutes les demandes en attente d’ajax et les annuler si nécessaire.

180voto

mkmurray Points 1371
$.xhrPool = [];
$.xhrPool.abortAll = function() {
    $(this).each(function(idx, jqXHR) {
        jqXHR.abort();
    });
    $.xhrPool.length = 0
};

$.ajaxSetup({
    beforeSend: function(jqXHR) {
        $.xhrPool.push(jqXHR);
    },
    complete: function(jqXHR) {
        var index = $.xhrPool.indexOf(jqXHR);
        if (index > -1) {
            $.xhrPool.splice(index, 1);
        }
    }
});

125voto

grr Points 701

À l’aide ajaxSetup n’est pas correct, comme indiqué sur sa page de doc. Elle permet uniquement de configurer les paramètres par défaut, et si certains demande override eux il y aura un gâchis.

Je suis moyen tardif à la partie, mais juste pour un usage ultérieur si quelqu'un est à la recherche d’une solution au même problème, voici mon aller à elle, inspirée et en grande partie identiques aux réponses précédentes, mais plus complet

35voto

Andy Ferra Points 615

Voici ce que j’utilise actuellement pour y parvenir.

Remarque : _.each de underscore.js est présent, mais évidemment pas nécessaire. Je suis juste paresseux et je ne veux pas changer pour $.each(). 8P

21voto

refik Points 121

Donner un id unique à chaque requête xhr et stocker la référence d’objet dans un objet avant de l’envoyer. Supprimez la référence après qu’une demande de xhr se termine.

Pour annuler tous demandent à tout moment :

Retourne les ID uniques des demande annulée. Uniquement pour des fins de test.

Fonction de travail :

Retourne un objet avec la seule fonction qui peut être utilisé pour ajouter des fonctionnalités plus si nécessaire.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X