webForumDet fria alternativet

Mäta tiden på hur länge en person surfar på en speciell sida!

ASP

3 svar · 405 visningar · startad av jimpa

Medlem sedan jan. 2001361 inlägg
Frågan#1

Hej,

Jag skulle villja kunna mäta tiden på hur länge en person surfar på en speciell sida. Samtidigt som personen ska kunna se en räknare som räknar minuter och sekunder. När personen klickar sig vidare eller stänger ner fönstret skall tiden sparas i en databas och om personen laddar sidan vid ett senare skede skall timern starta där han slutade senast. Har dock ingen aning om det skulle kunna funkar rent praktiskt men kanske i kombination med något javascript?

Mvh,
Jimpa

Medlem sedan jan. 2001361 inlägg
#2

Dump!

Ingen som har något förslag?

Mvh,
Jimpa

Medlem sedan dec. 19996 721 inlägg
#3

Javascript krävs helt klart, eftersom ASP inte kan ha någon aning om vad som försigår mellan sidvisningarna. Det blir svårt att bygga en heltajt lösning, men i princip så kan man gå tillväga så här:

blablabla....

<head>
<%

strKey = [i]generera en slumpad nyckel på något sätt[/i]

[i]Hämta från databasen: tidpunkt när användaren senast lämnade denna sida, om någon sådan post finnes (se nedan)[/i]

[i]Logga i databasen: tidpunkt, slumpnyckel, vilka sida det är och vilken besökare[/i]

%>
   <script type="text/javascript">
      function logUnload()
      {
         img=new Image();
         img.src='logunload.asp?key=<%=Server.URLEncode(strKey)%>';
      }
   </script>
   <body onunload="logUnload();">

blablabla

i logunload.asp


strKey=Request.Querystring("key")

[i]Logga i databasen att användaren lämnat sidan med den givna nyckeln[/i]

Detta är en fungerande lösning, men den är inte bombsäker. Onunload är inte 100%-ig och dessutom kräver ju detta Javascript för att något ska hända.

Alternativ:

-Skicka med all information om vilken sida det är, vilken användare etc. i querystringen till logunload.asp. Dock bör den informationen vara tvåvägskrypterad i så fall, så att ingen fuskar.

-Ha en timer-baserad javascriptfunktion (liknande logUnload, men triggad genom genom t.ex. setInterval el. setTimeout), som kontinuerligt loggar att användaren fortfarande är på sidan.

-Lagra informationen i cookies, mha Javascript och ASP.

Ingen lösning blir heltajt, men det ligger i själva webbens natur, eftersom servern inte vet vad som händer efter att sidan levererats till klienten.

Medlem sedan jan. 2001361 inlägg
#4

Tusen tack!

Jag gjorde ungfär som i ditt exempel ovan, och det verkar funka bra. Har dock inte testat så mycket ännu.
Bara en sak kvar! Går det att lägga in en minut och sekund räknare på relativt enkelt sätt?

Mvh,
Jimpa

267 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
130 ms — ändringar (db)