Newsgroup: it.comp.lang.javascript
Titolo: XML - Parte 4 - Open asincrono

Ciao a tutti e buona settimana.... ahahahahahahahha ... che palle il
lunedě...
Voglio utilizzare il metodo Open asincrono . Riporto l'esempio del
sincrono.
     pxmlHTTP.Open("POST", "pippo.asp", false);
     pxmlHTTP.Send(pxmlDoc.xml);
so che se metto true al posto di false la chiamata č asincrona.. ma  che
funzione Callback viene chiamata al termine della chiamata?

 ma  che funzione Callback viene chiamata al termine della chiamata?
A quale funzione di callback ti riferisci, scusa? Se fai la chiamata 
asincrona, significa che il metodo restituisce subito il controllo allo 
script.
-- 
C'ya,
ZER0
  :. job profile - coder.gfxer.webDesigner
"When you have eliminated the impossible, whatever remains,
however improbable, must be the truth." (S.H.)


sě ma quando termina chiama una funzione.
cmq grazie ma credo di averlo trovato, dovrebbe essere "
onreadystatechange"
un'altra domanda invece:
io nella chiamata (sincrona :-) ) chiamo
pxmlHTTP.Send(pxmlDoc.xml);
passando appunto il codice xml,e nella pagina chiamata ricreo gli oggetti e
carico il codice xml
 set pxmlDoc = server.createobject("microsoft.FreeThreadedXMLDOM")
 pxmlDoc.load(Request)
 set pxmlRoot = pxmlDoc.documentElement
mentre ho visto su msdn che viene fatta una chiamata
pxmlHTTP.Send(pxmlDoc);
passando l'oggetto (var pxmlDoc = new ActiveXObject("microsoft.xmldom");)
funziona questo sistema? se sě come riottengo l'oggetto dall'altra parte?
grazie

 funziona questo sistema? se sě come riottengo l'oggetto dall'altra parte?
Il codice e' equivalente.


 Il codice e' equivalente.
perň non mi funziona :-)

onreadystatechange"
Si, che ha una variabile di status readyState che va da 1 a 4. 4 significa
che il documento č stato caricato completamente. Sai se c'č un modo per
impostare un timeout?
Ciao.
Faser
-- 
FABIO SERRA
*Questo testo deve essere valutato secondo il senso della RFC-3*
Per rispondere in e-mail sostituire "invalid" con "faser"
--------------------

 perň non mi funziona :-)
Controlla il codice, sbagli sicuramente qualcosa. Errore di distrazione 
o altro. Fare:
pxmlHTTP.send(pxmlDoc.xml)
o
pxmlHTTP.send(pxmlDoc)
e' equivalente, anche se e' sempre preferibile specificare la 
proprieta' .xml



ok, allora specifico. grazie

 ok, allora specifico. grazie
Si, ma in ogni caso non capisco come mai non ti funzioni. Controlla se 
c'e' qualcosa che non va nel tuo script.


 Sai se c'è un modo per impostare un timeout?
Su Mozilla non ho trovato niente di analogo (va da se che ci sviluppi 
piu' te che io, quindi e' probabile che qualcosa cmq esista.. Ma 
sinceramente non l'ho trovato), mentre nell'xml document della MSXML 
c'e' un metodo chiamato "setTimeouts()" che serve appunto per impostare 
i diversi timeout (resolve/connect/send/receive timeout).



se specificando .xml funziona, e togliendolo no, e tu hai detto che
dovrebbe essere la stessa cosa....
ci saranno altri problemi

 ci saranno altri problemi
Si, beh.. era per capire. Se dipendeva da una qualche versione 
particolare o meno. Tecnicamente al send dovresti passare la stringa 
XML, quindi questo e' il metodo piu' corretto. Che poi passando 
l'oggetto XML, lui ne recuperi la proprieta' .xml, e' un altro discorso. 
Ma dovrebbe cmq funzionarti.


 Ciao.
a che ti serve?
io ho notato che ogni volta che cambia lo stato ti viene chiamata la funzione
che hai specificato, quindi basta controllare nella funzione stessa che lo
stato sia 4

 a che ti serve?
Nel caso che, appunto, la richiesta vada in timeout.
Non riesce a risolvere l'IP del server, la linea s'interrompe, cade un 
meteorite sulla server farm.. almeno l'applicazione client non rimane 
tutta la vita ad aspettare un segno dal cielo..



che pessimista :-))
tratto da MSDN
Specifies timeout settings for resolving the domain name, establishing the
connection to the server, sending the data, and receiving the response.
The timeout parameters of the setTimeouts method are specified in
milliseconds, so a value of 1000 would represent 1 second. A value of zero
represents an infinite timeout. There are four separate timeout values:
resolveTimeout, connectTimeout, sendTimeout and receiveTimeout. When
calling the setTimeouts method, all four values must be specified. The
timeouts are applied at the Winsock layer.
Remarks
The setTimeouts method should be called before the open method. None of
the parameters is optional.
[Script]
Script Syntax
oServerXMLHTTPRequest.setTimeouts(resolveTimeout, connectTimeout,
 sendTimeout, receiveTimeout);
Parameters
resolveTimeout
Long integer. resolveTimeout value is applied to mapping hostnames (such
as "
www.microsoft.com
") to IP addresses; the default resolveTimeout value
is infinite, meaning no timeout.
connectTimeout
Long integer. connectTimeout is applied to establishing a communication
socket with the target server, with a default timeout value of 60 seconds.
sendTimeout
Long integer. sendTimeout applies to sending an individual packet of
request data (if any) on the communication socket to the target server. A
large request sent to a server will normally be broken up into multiple
packets; the send timeout applies to sending each packet individually. The
default sendTimeout value is 5 minutes.
receiveTimeout
Long integer. The receiveTimeout value applies to receiving a packet of
response data from the target server. Large responses will be broken up
into multiple packets; the receive timeout applies to fetching each packet
of data off the socket. The default receiveTimeout value is 60 minutes.
Example
var xmlServerHttp = new ActiveXObject("Msxml2.ServerXMLHTTP");
var lResolve = 5 * 1000;
var lConnect = 5 * 1000;
var lSend = 15 * 1000;
var lReceive = 15 * 1000;
xmlServerHttp.setTimeouts(lResolve, lConnect, lSend, lReceive);
xmlServerHttp.open("GET", "
http://localhost/sample.xml
", false);
xmlServerHttp.send();

 tratto da MSDN
[mega-cut]
Ehm, ma tu li leggi i miei post? No, eh? ;)


 Assolutamente no. :) Quant'e' che sviluppi su web? :)
boh.. 2 anni ad intervalli regolari :-)
ma son fautore del Riavvio :-DDDD