12 messaggi dal 06 settembre 2001
Salve,

L'istruzione in oggetto nel global.asa quando viene eseguita?

La session abandon quando viene invece eseguita?

Grazie e scusate la banalità delle domande


206 messaggi dal 07 agosto 2001
session_onEnd è un evento generato dal timeout della sessione (ovvero quando scade una sessione) o quando viene "abbandonata" con il metodo Session.Abandon.Session.Abandon è un metodo richiamabile ovunque ce ne sia la necessità (ad es. in un logout).

32 messaggi dal 17 luglio 2001
Il metodo Abandon (chiamato esplicitamente) termina una sessione utente, distrugge tutti gli oggetti nell'oggetto sessione corrente e rilascia le sue risorse. comunque, questa cancellazione non avverrà finchè tutto lo script non sarà stato processato per la pagina corrente. Quando la sessione termina viene chiamato il gestore dell'evento OnEnd. Per default, anche se non chiami l'Abandon, l'oggetto Session viene terminato dopo 20 mins di tempo di idle.
Es.:
----------------File1.asp-------------------
<%
Response.Write "Your SessionID is " & Session.SessionID
Session("Application") = "DevSite"
Session.Abandon
Response.Write "The Application name is " & Session("Application")
%>

----------------File2.asp---------------------
<%
Response.Write "Your SessionID is " & Session.SessionID
%>

Output:
------------File1.asp-------------------------
Your SessionID is 465107831
The Application name is DevSite

-----------File2.asp--------------------------
Your SessionID is 465107831


Per quanto riguarda invece il Session_OnEnd considere che:
L'evento Session_OnEnd occorre quando viene chiusa la sessione. Normalmente una sessione viene terminata a caousa di un timeout, sia impostata di default o mediante l'uso di Sessio.Timeout, sia con l'abbandono esplicito mediante Session.Abandon.
L'evento Session_OnEnd è semplicemente una subroutine con un nome riservato posizionata nel Globa.asa. Il condice nell'evento non può influenzare l'utente in quanto questo ha già abbandonato il sito.
Nell'esempio che ti metto di seguito, non c'è output perchè l'utente è già andato. La prima linea deve necessariamente specificare il linguaggio di scripting che usi.
Nota, solo gli oggetti built-in Application, Server e Session sono disponibili nel gestore dell'evento OnEnd.
Es.:
-------------------Global.asa--------------------------
<script Language="VBScript" RUNAT=Server>
Sub Application_OnEnd()
End Sub

Sub Application_OnStart()
Application("NumSession") = 0
Application("NumVisited") = 0
End Sub

Sub Session_OnEnd()
Application("NumSession") = Application("NumSession") - 1
End Sub

Sub Session_OnStart()
Application("NumSession") = Application("NumSession") + 1
Application("NumVisited") = Application("NumVisited") + 1
End Sub
</script>

-------------------File1.asp----------------------------
Response.Write "You are " & Application("NumSession") & " of " & Application("NumVisited") & " users."

Spero di averti chiarito la differenza ! Fammi sapere !
Ciao
TheHMad

839 messaggi dal 13 febbraio 2001
<b>thehmad ha scritto:</b>
<BLOCKQUOTE id=quote><font size=1 face="Arial" id=quote><hr height=1 noshade id=quote>
...
Nota, solo gli oggetti built-in Application, Server e Session sono disponibili nel gestore dell'evento OnEnd.
<hr height=1 noshade id=quote></BLOCKQUOTE id=quote></font id=quote><font face="Arial" size=2 id=quote>

Chi l'ha detto?
Certo gli oggetti Request o Response funzionano un po' "maluccio" dato che non c'e' niente da ricevere o da mandare, pero' "con qualche accorgimento", nel Session_OnEnd si possono eseguire oggetti COM a piacimento.

Riguardo il timeout di sessione, si puo' impostare un valore differente, tipo 10 minuti in modo da non avere troppe sessioni aperte, specie se il sito e' visitato tantissimo, o gli scripts svolgono funzioni pesanti e allocano tanta memoria.

Ciao!
Paolo
32 messaggi dal 17 luglio 2001
<b>pdb ha scritto:</b>
<BLOCKQUOTE id=quote><font size=1 face="Arial" id=quote><hr height=1 noshade id=quote>
Chi l'ha detto?
Certo gli oggetti Request o Response funzionano un po' "maluccio" dato che non c'e' niente da ricevere o da mandare, pero' "con qualche accorgimento", nel Session_OnEnd si possono eseguire oggetti COM a piacimento.

<hr height=1 noshade id=quote></BLOCKQUOTE id=quote></font id=quote><font face="Arial" size=2 id=quote>

Beh ... il testo che ho postato faceva riferimento espliciti agli oggetti BUILT-IN e non a quelli COM che, come giustamente fai notare, possono essere eseguiti a piacimento. Ma d'altra parte l'utilizzo di oggetti COM nel corpo del gestore fanno semplicemente partedella logica del gestore.
Per quanto riguarda gli oggetti Request e Response il discorso è inerente ad istanze spefiche originate da una richiesta ed un reply HTTP. Considerato che non c'è stata nessuna request ma solo un timeout si sessione del server ... il fatto che funzionino maluccio mi sembra palese ... poi chiaramente Machiavelli insegna che se una cosa la vuoi fare prima o poi ci arrivi ... ma avrei i mie dubbi sullo stato di tali oggetti !!!!
Ciao
TheHMad

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.