Bonjour,
je cherche à stopper d'éventuelles requêtes AJAX avant d'en initier une autre.
Pour cela, j'utilise :
Dans mon code HTML, j'ai 2 liens qui appellent la fonction MajListing('1') ou MajListing('2').
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 jQuery.xhrPool = []; jQuery.xhrPool.abortAll = function() { jQuery(this).each(function(idx, jqXHR) { jqXHR.abort(); }); jQuery.xhrPool.length = 0; }; jQuery.ajaxSetup({ beforeSend: function(jqXHR) { if(jQuery.xhrPool.length > 0){ jQuery.xhrPool.abortAll(); } jQuery.xhrPool.push(jqXHR); }, complete: function(jqXHR) { var index = jQuery.xhrPool.indexOf(jqXHR); if (index > -1) { jQuery.xhrPool.splice(index, 1); } } }); function MajListing(test){ var url="./Includes/Ajax/Toto.php"; url=url+"?test="+test; var request = jQuery.ajax({ type: 'GET', url: url, success: function(result){$('listing').innerHTML = result;} }); }
Mon code fonctionne très bien lorsque je le laisse terminer sa requête.
Par contre, j'ai des problèmes lorsque je clique rapidement sur les 2 liens :
Clic 1er lien -> lancement requête 1
Clic 2ème lien -> dans la console Firebug, je vois bien que la requête 1 est "abort" cependant la seconde requête n'aboutit pas.
jQuery.xhrPool[0].readyState semble bloqué à 1.
Je suis obligé de relancer le serveur Apache.
Auriez-vous une idée pour nettoyer proprement les requêtes avant chaque appel à MajListing ?
Merci d'avance.
Config : Firefox 16 + WinXP 64 bits + XAMPP
Partager