Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/01/2012, 18h59   #1
Invité de passage
 
Homme
Inscription : novembre 2011
Messages : 10
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : novembre 2011
Messages : 10
Points : 4
Points : 4
Par défaut Ping d'un serveur

Bonjour à tous

Je ne suis pas sûr d'être dans la bonne section pour poster ceci mais je me redirigerais vers la bonne en fonction des réponses si besoin.

Je cherche actuellement à créer un script pour un forum.

Celui-ci me permettrait d'effectuer un ping vers une adresse ip (ou nom de domaine) et de me retourner le résultat dans une variable que je pourrais récupérer afin d'afficher l'état du serveur dans un module html.

J'ai déjà effectué quelques recherches mais n'ai pas réussis à en tirer clairement profit. J'ai trouvé cette partie de code qui devrait me permet d'effectuer le ping et d'afficher le résultat dans un popup alerte java.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
<html><head><title>Ping Testing</title>
<script type='text/javascript'>
function pingTime() {
var endTime=new Date();
alert('ping time in milliseconds: '+
(endTime.getTime()-window.startTime)
+"\nendTime: "+endTime.getTime()
+"\nstartTime: "+window.startTime)
}
</script>
</head>
<body onload="var startTime=new Date();
window.startTime=startTime.getTime()
var imgSrc='http://yahoo.com'+
'?cacheBuster='+Math.random();
var iFrame=document.getElementById('myPingTest');
iFrame.onload=pingTime;
iFrame.src=imgSrc">
<IFRAME id=myPingTest>
</IFRAME>
</body>
</html>
Le soucis c'est que le code tourne en boucle et affiche le popup sans-cesse dès qu'on clique sur OK.
Je souhaiterais remplacer ce popup par l'affichage simple d'une image dans le module html en fonction de l'état du serveur au moment du chargement du module.

Est-ce possible ? Le javascript est-il la meilleure solution ?

Je précise que je ne suis pas administrateur du serveur pingué mais qu'il répond aux requêtes ICMP.
evranger est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2012, 21h31   #2
Modérateur
 
Avatar de NoSmoking
 
Homme
Inscription : janvier 2011
Messages : 2 944
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : janvier 2011
Messages : 2 944
Points : 4 776
Points : 4 776
Bonsoir,
Citation:
Le soucis c'est que le code tourne en boucle et affiche le popup sans-cesse dès qu'on clique sur OK.
je ne comprend pas trop, quoiqu'il arrive à chaque fois que l'IFRAME se rechargera elle devrait appeler la fonction, c'est ce qui est demandé.
NoSmoking est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/01/2012, 06h32   #3
Invité de passage
 
Homme
Inscription : novembre 2011
Messages : 10
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : novembre 2011
Messages : 10
Points : 4
Points : 4
Oui tout a fait, mais le chargement de la page n'est-il pas censé être unique?
Pourquoi dans le module java une nouvelle page s'ouvre dès que je clique sur ok dans le popup alert?

Pourrais-tu m'éclairer sur le fonctionnement de cette partie ?
Code :
1
2
3
4
5
6
7
8
9
<body onload="var startTime=new Date();
window.startTime=startTime.getTime()
var imgSrc='http://yahoo.com'+
'?cacheBuster='+Math.random();
var iFrame=document.getElementById('myPingTest');
iFrame.onload=pingTime;
iFrame.src=imgSrc">
<IFRAME id=myPingTest>
</IFRAME>
Ma question principale était et reste : Est-il possible de faire que ce code s'effectue uniquement au chargement du module (donc de la page ou il est intégré) et de ressortir les résultats dans ce module au lieu d'un popup alert ?
evranger est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/01/2012, 12h12   #4
Modérateur
 
Avatar de NoSmoking
 
Homme
Inscription : janvier 2011
Messages : 2 944
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : janvier 2011
Messages : 2 944
Points : 4 776
Points : 4 776
tu peux faire comme dans l'exemple ci dessous
Code :
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
<!DOCTYPE HTML>
<html>
<head>
<title>Ping Testing</title>
<script type="text/javascript">
// fonction appelée sur le ONLOAD du body
function startBody(){
  window.startTime = new Date().getTime();
  var imgSrc='http://yahoo.com?cacheBuster =' +window.startTime;
  var iFrame=document.getElementById('myPingTest');
  // ajout événement ONLOAD sur l'IFRAME
  iFrame.onload = function(){
    var endTime = new Date().getTime();
    // initialise le texte à afficher
    var sTmp = 'ping time in milliseconds: ';
    sTmp += (endTime -window.startTime);
    sTmp += '<br>endTime: '  +endTime;
    sTmp += '<br>startTime: '+window.startTime;
    // supprime événement onload de l'IFRAME
    this.onload = function(){};
    // affiche le résultat
    document.getElementById('div_info').innerHTML = sTmp;
  }
  // affectation de la page à afficher dans l'IFRAME
  iFrame.src = imgSrc;
}
</script>
</head>
<body onload="startBody();">
<div id="div_info"></div>
<iframe id="myPingTest"></iframe>
</body>
</html>
NoSmoking est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h14.


 
 
 
 
Partenaires

Hébergement Web