Bonjour, voilà j'ai un soucis avec une fonction "récursive" devant retourner des résultats en Ajax. Elle est censée s'appeler un certain nombre de fois (autant de fois qu'il y a de résultats à afficher) cependant elle s'appelle bien au delà de la limite et ce malgré mais différentes conditions !
Après de nombreux tests avec des alert(), j'ai cru comprendre que le tout s'exécutait tellement vite que mes variables n'avaient pas le temps de s'incrémenter à chaque passage dans la boucle... c'est vraiment bizarre.
Voici la fonction qui pose problème, sachant que si j'enlève la récursivité et que je la relance manuellement moi même, je n'ai pas le fameux problème :
Ah oui j'oubliais, j'utilise la librairie jQuery dedans.
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
37
38
39 function itemLoad(){ currentb = parseInt(document.getElementById('currentb').value); if(currentb<=maxb){ $.post("site-analyse-filter.php", { itemtoken: currentb }, function(data){ passage++; if(currentb/2 == Math.round(currentb/2)){ expr = new RegExp("(result_0)", "i"); data = data.replace(expr, "result_2"); expr = new RegExp("(result_explore_0)", "i"); data = data.replace(expr, "result_explore_2"); }else{ expr = new RegExp("(result_0)", "i"); data = data.replace(expr, "result_1"); expr = new RegExp("(result_explore_0)", "i"); data = data.replace(expr, "result_explore_1"); } htmldata = $('#globaldoc').html(); htmldata = htmldata+data; $('#globaldoc').ajaxSuccess(function(request, settings){ if(passage<maxb) { $('#globaldoc').html(htmldata); currentb = parseInt(document.getElementById('currentb').value); currentb = currentb + 1; document.getElementById('currentb').value = currentb; if(currentb<=maxb){ itemLoad(); } }else{ /*alert(1); alert('passage : '+passage);*/ } }); }); } else{ } if(currentb==maxb) { $('#bodyload').hide(); } /*if(passage>12) { alert('passage : '+passage); }*/ }
Partager