Bonjour � tous,
�tant toujours tr�s n�ophyte en JavaScript, je voudrais vous parler d'un souci (ou plut�t : de soucis) que je rencontre avec une page et un programme connectant JavaScript et Python.
Pr�sentation du code : il s�agit d�un code javascript sur une page html qui part d�une liste d�URL sources (variable listeadresses dans le script js), et appelle un module en Python via une page PHP pour analyser le code source desdites pages et retenir une liste d�URL d�articles qui s�y trouvent, qui seront compil�s dans un fichier listeadresses.json . Le but est d�alimenter une liste d�URL d�articles (variable listeURL dans le script js) et de la stocker dans la bo�te de texte BoiteTexteResume.
Voici le code :
Globalement, quand j�active TODO(), les analyses se font apparemment, mais j�ai quelques probl�mes � l�ex�cution :
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61 <script src="js/d3.js"></script> <script src="js/underscore-min.js"></script> <script src="js/SetExtraits.js"></script> <script src="js/jquery.js"></script> <script> var GraphIDF; // affichage par défaut au lancement window.onload = function() { //Création des boites de textes var BoiteTexte = document.getElementById("txtSonder"); var BoiteTexteResume = document.getElementById("txtResume"); BoiteTexteResume.value=""; var BoiteTexteCompil = document.getElementById("txtCompil"); BoiteTexteCompil.value=""; var listeURL=[]; var listeadresses=["http://www.tribune-assurance.fr/","http://variances.eu/","http://www.argusdelassurance.com/"]; function TODO() { listeadresses.forEach(function(adressesource){ var xhr = new XMLHttpRequest(); xhr.open("GET", [adresse dune page PHP qui appelle un module Python qui crée un fichier listeadresses.json], true); xhr.onreadystatechange = function() { if (xhr.readyState == 4) { sourceAdresses= "[Répertoire racine]/listeadresses.json"; d3.json(sourceAdresses, function (json) { var listejson=[]; listejson=[json[adressesource]]; listejson.forEach( function(testURL) { listeURL.push(testURL); }) }); BoiteTexteResume.value=listeURL; } } xhr.send(); }) } </script>
- 1) les lancements de programmes sur les trois adresses dans listeadresses (appel de la variable xhr) se font successivement, mais les incr�mentations de r�sultats dans listeURL (appel � d3.json�) ne se font qu�apr�s ;
- 2) les r�sultats trouv�s et stock�s dans listeadresses.json pour chaque URL source ne sont pas tous int�gr�s dans BoiteTexteResume, et apparemment pas dans listeURL (je vois �a en affichant le contenu de listeURL dans un alert() � chaque modification de son contenu). A chaque fois, il n�y a que les r�sultats de l�une des trois adresses test�es dans listeadresses qui se retrouvent dans BoiteTexteResume.
Quelles seraient les causes de cela selon vous ?
Partager