1) Brugerens browser ikke accepterer cookies. 2) Brugeren lukker browseren.
2'eren kan du løse ved at åbne et lille vindue, hvori du udfører ASP-kode, ved onBlur. Men her kan du også få et problem, hvis brugeren har slået active scripting fra eller benytter en popup-killer.
Men i langt de fleste tilfælde, vil der jo ingen problemer være.
Alternativt kan du også have en usynlig iframe til at opdatere hvert 5. sekund f.eks. Heri kan du hele tiden tjekke, hvilken side brugeren befinder sig på ved at sende filnavnet til frame'n med en querystring.
ASP afvikles før HTML/javascript udskrives, så nej. Men du kan godt bruge onLoad/onUnload og f.eks. lade javascript overføre nogle variabler til næste side, hvor du kan aflæse dem serverside. Men det kan give endnu flere problemer end ovenstående.
Men er det i øvrigt ikke underordnet, om der er et par brugere i ny og næ, du ikke får registreret? Hver gang du får en ny værdi af Session("File") og Session("Start"), indsætter du bare disse i en tabel (evt. sammen med datoen og IP-adressen). Herefter kan du nemt og smertefrit regne gennemsnitsopholdstiden på hver enkel side ud:
Set rs = myConn.Execute("Select Filnavn, Avg(BrugtTid) As GnmTid From Tabel Group By Filnavn")
While Not rs.EOF Response.Write "Tid brugt på " & rs("Filnavn") & ": " & rs("GnmTid") & " sekunder<br>" rs.MoveNext Wend
Indsættelsen i tabellen kan du foretage således: (Her ødelægges statistikken heller ikke, hvis brugeren opdaterer den pågældende side)
If Session("File") <> "" And Session("File") <> Request.ServerVariables("Script_Name") Then myConn.Execute("Insert Into Tabel (Filnavn, BrugtTid) Values ('" & Session("File") & "', " & DateDiff("s", Session("Start"), Now) & ")") End If
Session("File") = Request.ServerVariables("Script_Name") Session("Start") = Now
I "farvel.asp" udfører du så ca. samme kode som før:
If Session("File") <> "" Then myConn.Execute("Insert Into Tabel (Filnavn, BrugtTid) Values ('" & Session("File") & "', " & DateDiff("s", Session("Start"), Now) & ")") End If
Og så skal du lige huske at lukke popup-vinduet igen med det samme. På dette tidspunkt er din ASP-kode som før nævnt afviklet. Indsæt følgende i "farvel.asp":
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.