Newsgroup: it.comp.lang.javascript
Titolo: Testare se il server è online...(problemino incasinato)

Ciao a tutti, volevo sapere se , tramite qualche js qualcuno ha mai testato
se un certo server è attivo.
L'idea di fondo è quella di crearmi un bottone che mi linki ad una certa
pagina (ad esempio pippo.html) testando se questa è attiva, nel caso
contrario (il server è shutdown) allora mi linki ad un altra (pluto.htm).
Secondo voi si può fare?
E' possibile fare questo controllo sull'attività del server in altro modo?
Grazie per gli eventuali consigli,
Lucy

 Grazie per gli eventuali consigli,
L'escamotage piu' utilizzato per questi frangenti, e' quello di caricare 
due immagini dai due server che ti interessano, e tramite gli eventi 
onerror/onload controllare chi non risponde, e quale invece risponde per 
primo.
Ti scrivo un codice di esempio col quale puoi "giocare"..
Te lo codo "on the fly", ma dovrebbe funzionare.
<script>
	function testServer(sNome,sUrlImg){
		var img=new Image();
			img.onload=function(){alert(sNome)}
			img.onerror=function(){alert("Errore nel raggiungere 
il server - '"+sNome+"'")}
			img.src=sUrlImg;
	}
 
	testServer("server 2","http://...");
	testServer("server 1","http://...");
</script>
Questo e' lo "scheletro" su cui puoi basare quel che ti serve.. Basta 
modificare le funzioni onload e onerror in base alle tue esigenze (e, 
eventualmente, aggiungere un terzo parametro).
Se mi spieghi esattamente come deve essere implementato lo script nella 
tua pagina, possiamo vedere assieme come fare.
ovviamente "testServer" come secondo parametro necessita di un url 
completo che punta ad un immagine (es. 
http://www.miosito.it/immagini/blank.gif
).
Per funzionare, si deve esser certi che l'indirizzo a cui punta e' 
corretto, e che l'immagine quindi esista.
E per ottimizzarne le prestazioni, sarebbe bene - se possibile - che 
entrambi puntassero alla stessa immagine, possibilimente una gif di 2 
byte o qualcosa del genere. Ovviamente piu' l'immagine e' grossa, piu' 
ci vorra' tempo per caricarla, e quindi i risultati sono un po' falsati 
(per rispondere il server ti risponde cmq, solo ci mette parecchio).
-- 
C'ya,
ZER0
  :. job profile - coder.gfxer.webDesigner
"Quanti angeli danzano sulla punta di uno spillo?"

 ZER0
Ciao, grazie della pazienza , e grazie al ng intero per l'aiuto che
normalmente dà a chi come me si trova ad affrontare problemi impegnativi
senza essere un'addetta ai lavori,
Lucy

 Ciao, grazie della pazienza , e grazie al ng intero per l'aiuto
Non preoccuparti.. Il NG serve a queste cose..


 ZER0
Ciao e buona domenica ,
Lucy

 Lucy



Un fischio te lo faccio subito, ( senza nessun impegno ovviamente!!:):
 circa un mesetto fa avevo postato una richiesta qui sul ng per riuscire ad
impostare , dopo un certo periodo di inattivita di una certa pagina ad
un'altra precedentemente individuata.
Ti riporto il post :
"E' possibile impostare il ritorno ad una certa pagina in caso di inattività
della pagina corrente (ad ex. se per 1 minuto la pagina corrente 'fff.htm' è
inattiva allora vai a Index.htm)?"
Gentilmente Cristiano Larghi (che ringrazio ora xchè non lo feci a suo tempo
e me ne scuso) mi aveva postato la logica della risoluzione del problema
ossia:
Logica:
setti una variabile al di fuori delle function
var t=60000;
onload la decrementi; se=0 salti a...
<body onload='setTimeout("decrementa()",1000)'>
function decrementa() {
 if(--t==0) {
  document.location='tuapagina';
  return;
}
setTimeout("decrementa()",1000);
}
Ogni volta che fai qualcosa (potrebbe funzionare document.onmousemove)
ripristini t=60000;
Ho capito qual'è appunto la logica ma non sono riuscita ad implementarla (x
mia sicura inesperienza).
Potresti darmi un'aiuto? Ovviamente mi rivolgo a te ed al Ng tutto e , tengo
a sottolineare , senza NESSUN impegno , avendo già troppo abusato della
tua/vostra esperienza e pazienza.
Ancora grazie,
Lucy

 Ancora grazie,


, 
zer0....@libero.it
 says...
Ah, i fumi del sonno.. questo e' il codice corretto, anche per NS4.x 
(meno male che ho riletto il post prima della nanna ^^")
<html>
<head>
	<script>
		var secStart=5,
			secCurr=secStart;
 
		function controlTime(){
			self.status="time - "+secCurr;		
			if (secCurr==0)
				self.location.href="about:blank";
			else
				secCurr--;
		}
 
		function restartTime(){
			secCurr=secStart;
		}
 
		if (document.layers){
			window.captureEvents(Event.MOUSEMOVE);
			window.onmousemove=restartTime;
		}
	</script>
</head>
<body onload="setInterval('controlTime()',1000);" 
onmousemove="restartTime();">
</body>
</html>


ZER0
Ciao,
Lucy