Bonjour,
J'ai écrit un CGI en C++. Ce dernier crée une socket client qui va se connecter à un serveur (programme écrit en C++). Lorsque je lance le cgi à partir d'un browser, celui-ci est exécuté en continue afin de recevoir en continue des données depuis le serveur. Lorsque le cgi reçoit une donnée, j'appelle une fonction javascript nommée "changeIcon":
Voici ma fonction javascript:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 cout << "Données reçue:" << data << endl; cout << "<script language='Javascript'>" << endl; cout << "changeIcon(' " << data << " ');" << endl; cout << "</script>" << endl;
Le CGI est exécuté sur Apache. Si je lance le cgi en local (sur le pc où est situé Apache et le cgi), ça marche nickel.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 function changeIcon(iconName) { var object = document.getElementById("icon"); object.innerHTML = "<img src='images/" + iconName + "'>"; };
Par contre, sur un autre pc du réseau le fonctionnement est différent, ce qui ne m'arrange pas.
Je m'explique. Lorsque le CGI reçoit une donnée la ligne de codeest reçue au niveau du navigateur ; Mais la suite
Code : Sélectionner tout - Visualiser dans une fenêtre à part cout << "Données reçue:" << data << endl;
n'est pas reçue , donc pas exécutée
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 cout << "<script language='Javascript'>" << endl; cout << "fctJavascript(' " << data << " ');" << endl; cout << "</script>" << endl;
Avez-vous une idée sur ce comportement svp ?
Est-il possible qu'il y a une histoire de vider le tampon associé au flot "cout".
Cependant cela doit ce faire en utilisant endl:Car J'aimerais également préciser que si le CGI reçoit une 2ème donnée, la fonction javascript associé à la 1ère donnée est exécuté. et ainsi de suite.
Code : Sélectionner tout - Visualiser dans une fenêtre à part cout << ... << endl;
Enfaite j'ai l'impression que le navigateur ne reçoit (par Apache) le bout de code javascript seulement après la réception d'un autre message.
Peut-être que l'utilisation des cgi n'est pas adaptée pour ce que je veux faire: on m'a dit qu' il est impératif de ne pas produire des application CGI qui ne se terminent jamais, car le nombre de processus qu'un serveur (Apache) peut produire est limité.
J'attends vos avis. Thx in advance.
Partager