Avatar billede 3z Nybegynder
04. maj 2005 - 16:29 Der er 8 kommentarer og
1 løsning

Online lige nu og global.asa

Hej,

Jeg har en global.asa fil, som skulle vise hvor mange personer der er online på siden lige nu. Desværre bliver antallet af personer online ikke reduceret selvom man lukker browservinduet ??? OG hvis jeg åbner et nyt browservindue (så jeg har 2 på samme side samtidig), så skriver den 2 online ???

Burde det ikke være sådan, at een person kun står som online een gang OG at sessionen afsluttes når browservinduet lukkes ?

Her er global.asa filen:
<SCRIPT LANGUAGE="VBScript" RUNAT="Server">
Sub Application_OnStart
  ' Nulstiller antallet af brugere når applikationen (serveren) startes
  Application("ActiveUsers") = 0
End Sub

Sub Application_OnEnd
  ' Skriv kode som skal køres når applikationen (serveren) stoppes
End Sub

Sub Session_OnStart
  ' Forøger antallet af brugere med 1, når en session startes
  Application.Lock
    Application("ActiveUsers") = Application("ActiveUsers") + 1
  Application.UnLock
End Sub

Sub Session_OnEnd
  ' Reducer antallet af brugere med 1, når en session afsluttes
  Application.Lock
    Application("ActiveUsers") = Application("ActiveUsers") - 1
  Application.UnLock
End Sub
</SCRIPT>
Avatar billede busschou Praktikant
04. maj 2005 - 16:34 #1
Der er jo to spørgsmål
1) Hos mig har det også været et problem at Session_OnEnd ikke altid har virket "promte" når man lukker sit vindue. Om det kan løses og hvordan ved jeg ikke. For koden er korrekt i mine øjne
2) Når du åbner en browser eller et vindue i en browser og går ind på din side. Så oprettes der en unik Session til den forbindelse. Åbner du 100 vinduer til samme side på samme gang. Ja så er der 100 besøgende. Det er ikke fejl. Det blot sådan nettet fungerer :o)
Avatar billede 3z Nybegynder
04. maj 2005 - 16:45 #2
ok det med at åbne flere browservinduer kan jeg leve med, da der formentlig ikke er nogen der vil gøre det alligevel, men hvordan får jeg Session_OnEnd til at virke ???

Det lader til den venter de 20 min. som en standard session har, men det burde den da ikke når browservinduet lukkes ???
Avatar billede busschou Praktikant
04. maj 2005 - 16:51 #3
Nej du har ret. Det burde den ikke. Jeg har hørt rundt omkring at det nogen gange virker godt og andre gange skidt. Måske afhængig af ens version
Avatar billede musicchart.dk Nybegynder
04. maj 2005 - 16:55 #4
Du er ikke den eneste, jeg har også altid haft problemer med global.asa.
Avatar billede 3z Nybegynder
04. maj 2005 - 17:29 #5
Hmm er der ingen, der har en anden løsning istedet fremfor global.asa som virker ?
Avatar billede mnoer Nybegynder
04. maj 2005 - 17:51 #6
en session timer ikke ud før der er gået 20 min (eller hvad sessiontimeout nu er sat til) uden aktivitet.
Avatar billede busschou Praktikant
05. maj 2005 - 16:05 #7
jvnf Microsofts reference så bliver Session_OnEnd kun kaldt når en session enten bliver abandon eller timed out:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/iissdk/html/302058df-eb4a-4967-8309-f7b07f525ebb.asp
Det kunne jo så tyde på en session ikke bliver abandon når man lukker sit vindue. Men at den kører på serveren indtil den timer out
En ide kunne være at du i kalder <body onunload="fjernSessions();">
Det vil kalde en javascript funktion når vinduet lukkes.
Hvis du på en måde i den funktion så kan slette sessionen, så er den hjemme.
Men jeg ved blot ikke lige hvordan javascript klarer den
Avatar billede mnoer Nybegynder
06. maj 2005 - 14:30 #8
javascript kan ikke klare den... det eneste du kan gøre med javascript er at åbne et pop-up vindue ved onunload. den fil der så åbnes skal have en session.abandon. Men det vil i de fleste tilfelde ikke virke alligevel fordi mange har pop-up blockere.
Avatar billede 3z Nybegynder
14. november 2006 - 22:55 #9
tror ikke den ideelle løsning findes
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester