Yop,
je suis en train de faire une petite api pour gérer un stock là où je travaille, et j'ai un petit soucis lors de l'appel à la BDD.
En fait tout fonctionne bien. Pour vous expliquer voici le code:
En gros tout à la fin vous pouvez voir que j'ai mis un "while", et ce parce que sinon le code continue à s'exécuter sans que xhr.readystate soit à 4, et par conséquence sans que mes données soient récupérées depuis la bdd.
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 function ajax(num, arg) { var xhr=null; if (window.XMLHttpRequest) { xhr = new XMLHttpRequest(); } else if (window.ActiveXObject) { xhr = new ActiveXObject("Microsoft.XMLHTTP"); } var ii = []; xhr.onreadystatechange = function() { if (xhr.readyState==4) { var docX = xhr.responseXML; var items = docX.getElementsByTagName("rep"); if (items.length != 0){ for (i=0;i<items.length;i++) { ii[i] = items[i].getAttribute("ii"); } } else {alert("rien trouvé");} } }; xhr.open("GET", "requete_mysql_xml.php?num=" + num + "&arg=" + arg, true); xhr.send(null); var i = 0; // while (ii.length == 0) {} return ii; }
Le problème là dedans c'est que ça fait bugger le navigateur, et là en particulier il me demande à chaque fois si je veux arrêter le script gourmand.
Donc voilà, j'aurais aimé savoir si vous connaissiez une parade à ça
Merci d'avance
A+
saipas
Partager