![]() | |
![]() |
| | Thread Tools | Display Modes |
#21
| |||
| |||
|
|
ma il bello deve ancora venire, se si lancia l'abort() l'oggetto va in readyState = 4 (il chè potrebbe avere anche senso) pero' sollevando un'eccezione meravigliosa Non è questo che solleva un'eccezione. Scritta in questo modo, la tua è un'affermazione errata. |
|
terminata "normalmente", infatti la proprietà status in questo caso non è accessibile similmente agli stati intermedi di cui si parlava prima Se mi dici queste cose, ti consiglio davvero una lettura approfondita alla reference dell'oggetto XMLHttpRequest di Gecko. ![]() Ti rinnovo anche il mio consiglio di cercare sul newsgroup, visto che questa problematica fu discussa già in passato, e anche in modo molto approfondito, se la mia memoria non m'inganna. |

#22
| |||
| |||
|
|
Ti rinnovo anche il mio consiglio di cercare sul newsgroup, visto che questa problematica fu discussa già in passato, e anche in modo molto approfondito, se la mia memoria non m'inganna. Se non ricordo male, ne parlammo anche tu ed io all'epoca della mia chat, ricordi? [cut] |

Il punto è, (..) Mi pare ![]() |


#23
| |||
| |||
|
|
Nando <aarrmmaaccoott (AT) libero (DOT) it> wrote: [cut] Ti rinnovo anche il mio consiglio di cercare sul newsgroup, visto che questa problematica fu discussa già in passato, e anche in modo molto approfondito, se la mia memoria non m'inganna. Se non ricordo male, ne parlammo anche tu ed io all'epoca della mia chat, ricordi? [cut] Lo ricordo più che bene, ma volevo che Ugo s'impegnasse un minimo nella ricerca sul newsgroup. ![]() Il punto è, (..) Mi pare ![]() Questo lo so io, lo sai tu, e se lui ci fosse arrivato allo stesso modo in cui l'hai fatto te (anche aiutandosi tramite google ed il precedente thread, ma traendo da solo le sue conclusioni) sarebbe stato meglio. ![]() Soprattutto viste le successive lacune che ho notato su dei passaggi. Ormai dovresti saperlo bene quanto me, che ciò che maggiormente conta è "come" si raggiunge una certa conoscenza, e non la conoscenza in sé. ![]() |
#24
| |||||||
| |||||||
|
|
Da una lettura veloce, mi sembra che tu sia abbastanza fuori strada.. Ma chiediti questo: cos'è lo status? A cosa si riferisce la proprietà omonima? Cos'è il readystate? |
|
E quando viene invocato l'evento onreadystatechange? Gli unici motivi per cui tu sia fuori strada, è che non ti sei risposto a domande come queste. |
|
Leggiti la reference dell'oggetto XMLHttpRequest, se hai dei dubbi. |
|
per FF gli stati intermedi allo 0 (uninitialized) e al 4 (complete) sono sacri, cioè tentativi di leggere lo status, rispedire header di un nuovo messaggio e/o sperirlo proprio, lo fanno andare in errore No, non direi proprio. E c'è anche un post recentissimo che smentisce questa tua affermazione. |
|
ma il bello deve ancora venire, se si lancia l'abort() l'oggetto va in readyState = 4 (il chè potrebbe avere anche senso) pero' sollevando un'eccezione meravigliosa Non è questo che solleva un'eccezione. Scritta in questo modo, la tua è un'affermazione errata. |

|
Ti rinnovo anche il mio consiglio di cercare sul newsgroup, visto che questa problematica fu discussa già in passato, e anche in modo molto approfondito, se la mia memoria non m'inganna. |

|
ciao aspetto le tue correzioni ![]() fiducioso che tu mi dia anche 2 righe di codice :P Codice per cosa? Qui il problema è di conoscenza e di logica, non vi è alcun codice da scrivere, c'è solo da capire. |




#25
| |||||||
| |||||||
|
|
per FF gli stati intermedi allo 0 (uninitialized) e al 4 (complete) sono sacri, cioè tentativi di leggere lo status, rispedire header di un nuovo messaggio e/o sperirlo proprio, lo fanno andare in errore No, non direi proprio. E c'è anche un post recentissimo che smentisce questa tua affermazione. io ho fatto le seguenti prove: [..] |
|
Fa eccezzione il caso di interruzione forzata dell'esecuzione richiamando abort(), readyState assume il valore 4 e: [cut] |
|
nel secondo (leggere lo status) va in errore FF, perchè come immaginavo |
|
ma il bello deve ancora venire, se si lancia l'abort() l'oggetto va in readyState = 4 (il chè potrebbe avere anche senso) pero' sollevando un'eccezione meravigliosa Non è questo che solleva un'eccezione. Scritta in questo modo, la tua è un'affermazione errata. mmmm, se è più corretta |
|
mah, io sin da subito avevo trovato quel 3d in cui tu e Nando parlavate della sua chat, |
|
quanto concerne questa mia problematica, |
|
sperando di avere fatto qualche passo in avanti (altrimenti mi sparo - visto il tempo che mi sta facendo perdere questa cosa), mi potresti spiegare il perchè del fallimento della seconda richiesta: |
#26
| ||||||||
| ||||||||
|
|
In ogni caso, non fare troppo affidamento al fatto che lo status sia accessibile dopo che il readyState è passato a 1; |
|
L'eccezione viene sollevata perché tenti di accedere allo status che non è mai giunto. Non è l'abort() a farlo. Ti è chiaro questo, ora? |
|
Ora ti dovrebbe essere palese il perché fare questo: if( xmlhttp.readyState == 4 ) { if( xmlhttp.status == 200 ) callback( xmlhttp.responseText ); else alert( "Error; status = " + xmlhttp.status ); } E' un errore. |
|
Questo è un problema di tutt'altra natura, difatti non ottieni alcun errore (a meno che tu non vada a chiedere lo status, appunto, quando non ne hai). In IE quando invochi il metodo "open" viene reinizializzato tutto, è questo il motivo (che spero tu sappia) |

|
del perché gli eventi vengono impostati DOPO l'open, e ogni volta che viene chiamato. Su Firefox no, l'onreadystate potresti anche impostarlo prima e solo una volta. Se lo imposti prima dell'open della prima richiesta, noterai come la funzione venga chiamata anche per i metodi "open", per esempio. |
|
Il punto è che essendo un oggetto così condiviso e facendo richieste asincrone, non dai il tempo all'engine di reimpostare le risorse. In IE il problema non si pone perché viene eliminato a monte. |
|
Nel thread di Nando comunque, si parla anche di problemi come questi e di come discriminare le chiamate avvenute con successo; |
|
Con un approccio OOP riesci a risolvere elegantemente il tutto. |
#27
| |||||||
| |||||||
|
|
In ogni caso, non fare troppo affidamento al fatto che lo status sia accessibile dopo che il readyState è passato a 1; mi sono sbagliato o cmq volevo dire >1 come dice chiaramente una delle reference MDC: 2 LOADED send() has been called, headers and status are available. |
|
L'eccezione viene sollevata perché tenti di accedere allo status che non è mai giunto. Non è l'abort() a farlo. Ti è chiaro questo, ora? direi di sì, cmq è l'abort() a causare l'interruzione e quindi a non far "giungere" lo status... |
|
e a questo punto mi sorge un dubbio tremendo, ci sono altre circostanze in cui il status non perviene nonstante il readyState sia >1? |

|
direi di sì, oltre il controllo del readyState prima di poter accedere allo status devo essere sicuro che questo sia avviabile, ma questo mi riporta alla domanda che ho posto precedentemente, il caso di abort() si puo' gestire in qualche modo, ma ci possono essere anche altri casi? |
|
Il punto è che essendo un oggetto così condiviso e facendo richieste asincrone, non dai il tempo all'engine di reimpostare le risorse. In IE il problema non si pone perché viene eliminato a monte. ecco questa parte, un po' più delicata non mi è chiarissima, |

|
Nel thread di Nando comunque, si parla anche di problemi come questi e di come discriminare le chiamate avvenute con successo; andro' a rileggere, non mi sembrava... |

|
Con un approccio OOP riesci a risolvere elegantemente il tutto. dai vedro' cosa riesco a fare... |

#28
| |||
| |||
|
|
Bravo... Se questo thread fosse anche solo riuscito a spronarti a uno sviluppo più OOP, avrebbe già fatto tanto. ![]() |

#29
| |||
| |||
|
|
ho preferito inviare il codice così com'è cut |

#30
| |||
| |||
|
|
ho preferito inviare il codice così com'è cut Non mi parli più ![]() |
![]() |
| Thread Tools | |
| Display Modes | |
| |