Newsgroup: it.comp.lang.javascript
Titolo: Controllare l'esistenza di un file su un server...

Buongiorno a tutti! Sono nuovo del mondo javascript e, mio malgrado (non
perché mi dispiacia ma perché il mio lavoro è un altro...) devo inserire un
piccolo controllo in una pagina web per verificare se un determinato URL è
raggiungibile e, eventualmente, se non disponibile caricare la pagina da un
altro server... è possibile?
Il concetto è questo:
if (http......./inde.html esite)
{carica la pagina}
else
{carica quest'altra pagina}
Grazie a tutti e buona giornata
Luca

 altro server... è possibile?
Non esattamente. Una funzione come quella che chiedi non esiste in 
javascript.
E' pero' possibile trovare qualche workaround, il piu' comune e' quello 
di tentare di caricare un immagine da un server.
Infatti gli oggetti Image() hanno due pregevoli event-handler, chiamati 
onload e onerror, che vengono scatenati rispettivamente quando 
l'immagine e' stata caricata o quando l'immagine non puo' essere 
caricata per qualsivoglia errore (tipo, che non esiste, o che l'host non 
e' raggiungibile).
In sintesi, quindi, non puoi verificare se una "pagina" e' 
raggiungibile, ma puoi verificare se un immagine lo e'. Se quindi sei tu 
che sviluppi il codice di entrambi i server, usa un'immagine ad hoc (una 
gif di 1x1 pixel) e carica quella per entrambi i server; altrimenti 
guarda - tra le immagini dei siti che ti interessa - quella di minor 
peso.
Purtroppo se non sei tu a fare manutenzione dei siti, devi mettere in 
cantiere che se il webmaster cambia il layout e modifica il nome di 
quell'immagine, non verra' piu' trovata.
Considera che, se i server in questione sono dei "mirror" (quindi hanno 
anche "immagini" uguali su cui poter fare questo giochetto), tramite 
questo metodo puoi anche verificare qual'e' il server che ti ha risposto 
piu' velocemente (ovvero quello che ti ha caricato l'immagine prima).
Se questo tipo di approccio puo' esserti utile, e specifichi il contesto 
in cui lo usi (siti mirror?) ti posso buttare giu' uno stralcio di 
codice ottimizzato, invece che uno generico che - magari - non ti e' 
neanche d'aiuto.
-- 
C'ya,
ZER0
  :. job profile - coder.gfxer.webDesigner
"When you have eliminated the impossible, whatever remains,
however improbable, must be the truth." (S.H.)

 neanche d'aiuto.
Beh... mi sembra addirittura eccessivo... già mi hai illuminato abbastanza..
ci provo da solo (non ho idea per la temporizzazione per capire quale ha
risposto prima) ma ci provo... insomma mi sarebbe molto comodo ma mi
vergogno ad ammetterlo senza averci un po' provato :#|
Se invece ti interessa farlo perché può essere d'aiuto ad altri o per fare
un tutorial usa dei generici  
http://www.server1.i/immagine1.gif
http://www.server2.i/immagine1.gif
In ogni caso grazie mille, spero di poter ricambiare! :-)
Ciao

 In ogni caso grazie mille, spero di poter ricambiare! :-)
Figurati. :) Al massimo, se sei di zona, ti scrocco un caffe' o la 
conoscenza di qualche amica/collega carina.. ;D
(ormai sto facendo incetta.. eh, Dan? :P )


 In ogni caso grazie mille, spero di poter ricambiare! :-)
Vedi se questo puo' esserti d'aiuto:
http://www.jsdir.com/staffscripts/script026.asp
-- 
Ciao, Riccardo
------------------------------------------------------------------------
http://www.jsdir.com
 ---- Bring Your Site To Life!!!!
------------------------------------------------------------------------
http://www.dev2dev.it
 - La rete ha connesso nuove particelle - D2D006
------------------------------------------------------------------------
Per rispondere: togli il PUNTO e metti un .

 
http://www.jsdir.com/staffscripts/script026.asp
Quello script e' un po' spartano pero', al di la' di dover inserire 
l'HTML (potevi usare l'oggetto Image, e' piu' versatile), contempli solo 
l'onload e non l'onerror.
Nell'informatica non si deve avere "una visione ottimistica" delle cose, 
ma si deve contemplare anche il verificarsi del caso peggiore :) Ovvero, 
tutti i mirror down.. okay, il caso peggiore sarebbe se anche il sito 
ove risiede la pagina e' down, ma su quello non e' che possiamo farci 
molto. Sull'altro si.


 molto. Sull'altro si.
Hai visto la data di quello script?


 Hai visto la data di quello script?
No, ma che significa? Che al tempo non conoscevi l'oggetto Image(), con 
il quale si fanno i rollover ed e' il primo di cui si prende coscienza? 
Oppure che conoscevi l'event-handler onload ma non l'onerror, che stanno 
sulla stessa pagina nella reference di JS? O che all'epoca non eri in 
grado di stabilire che c'era una remota possibilita' che tutti i server 
non fossero raggiungibili?
Non capisco la tua risposta.


 Non capisco la tua risposta.
Se dovessi star dietro ed aggiornare in continuazine tutta la roba che 
c'e' nel sito qualcuno dovrebbe pagarmi... ma visto che non mi paga 
nessuno... :-)))


 nessuno... :-)))
Concordo.. Al limite pensa ad un marcatore del tipo "obsoleto" per gli 
script, oppure ad avvalerti di qualche giovane volentereso.. qua su iclj 
ne ho visti quantomeno un paio..


 ne ho visti quantomeno un paio..
Io non chiedo mai niente a nessuno, tutto quel che c'e' nel sito di non 
mio mi e' stato volutamente mandato con autorizzazione (anzi richiesta 
:-) di pubblicazione... tu sei l'unico al quale ho espressamente chiesto 
se voleva partecipare in passato... ma non hai mai tempo peggio di me
:-(


 :-(
Guarda, non me ne parlare. E' tutto un caos. Da quando sviluppo sul web 
non sono ancora mai riuscito a fare un cristo di sito mio.. Anche 
stupido.
