webForumDet fria alternativet

Global.asa fråga

ASP

7 svar · 294 visningar · startad av wborg

Medlem sedan dec. 2003209 inlägg
Frågan#1

Hej!

Jag har en fråga angående detta script som ska visa antal besökare på sidan just nu och det funkar super när det gäller att lägga till en besökare men den drar inte bort en besökare som lämnar sidan, någon som kan se varför?:

<script language="vbscript" runat="server">
Sub Application_OnStart
Application("numvis")=0
End Sub

Sub Session_OnStart
Application.Lock
Application("numvis")=Application("numvis") + 1
Application.UnLock
End Sub

Sub Session_OnEnd
Application.Lock
Application("numvis")=Application("numvis") - 1
Application.UnLock
End Sub
</script>

Tacksam för all hjälp jag kan få
/Stefan

Medlem sedan feb. 200112 078 inlägg
#2

Händer det inte alls, eller händer det senare än du tänkt dig?

Medlem sedan dec. 2003209 inlägg
#3

Ja det händer senare än jag tänkt mig märkte jag efter ett tag.
Dessutom så märkte jag när jag skulle testa att dra igång ett antal sessions för att testa scriptet att det adderade lite lustigt oxå, jag startade 7 webfönster och det stog då vartefter 1, 2, 3, 4, 5, 9, 12 besökare just nu! Varför hoppar den från 5 till 9 och från 9 till 12? Vad hände med siffrorna där emellan?

Medlem sedan feb. 200112 078 inlägg
#4

Jag skrev:

Ty global.asa:s vägar äro outgrundliga.

Jag är lite nyfiken på hur du startade de där fönstrena. Genom att klicka på IE-ikonen eller välja Nytt fönster från menyn?

Medlem sedan dec. 2003209 inlägg
#5

Genom att klicka på IE-ikonen, kanske inte bästa sättet men har bara en dator där jag e just nu så det är lite svårt att testa med fler klienter för tillfället.

Har nu lyckats fixa till tiden på session så att den funkar ganska mycket bättre än förut, global.asa ser numer ut så här:

<script language="vbscript" runat="server">
Sub Application_OnStart
Application("numvis")=0
End Sub

Sub Session_OnStart
Session.Timeout = 1
Session("Start") = Now()
Application.Lock
Application("numvis")=Application("numvis") + 1
Application.UnLock
End Sub

Sub Session_OnEnd
Application.Lock
Application("numvis")=Application("numvis") - 1
Application.UnLock
End Sub
</script>

/Stefan

Medlem sedan feb. 200112 078 inlägg
#6

Är det inte lite taskigt att ha timeout på en minut? Det innebär ju att om en besökare är inaktiv i 60 sekunder, så förlorar denne sin session och all eventuell data (validering t.ex.) som ligger i session-scope.

Medlem sedan dec. 2003209 inlägg
#7

Nej alltså denna räknare e bara för skojs skull, den ska ligga på en sida som ska lagra resultat från tävlingar. Jag vill bara ha den för att folk ska få en uppfattning om varför sidan kanske segar sig t.ex. Typ att sidan laddar segt och det står 173 besökare just nu! Då kan man ju förstå varför det är segt, framför allt eftersom den körs mot Access databas.

Medlem sedan feb. 200112 078 inlägg
#8

Mjo, men det känns som lite fel approach om du har prestandaproblem.

Jag skulle nog hellre se till att lagra en exekveringstid per sida i en databas och optimera lite kod för att få reda på flaskhalsarna.

261 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)