Avatar billede jensen2005 Nybegynder
22. februar 2008 - 10:32 Der er 6 kommentarer og
1 løsning

Jeg har brug for nogle gode råd.

Hej Eksperter

Jeg har brug for nogle gode råd.

Jeg skal til at lave en applikation(C#, Asp.net) som skal gemme noget data i en database, når brugeren forlader siden. Jeg havde egentlig tænk mig at dataene skal gemmes i en cookie og trækkes derfra og over i en database når bruger forlader siden.

Her er nogle overvejelser jeg har haft:
- Lyder det fornuftigt at bruge Session_Start og Session_End?
- Kan man hente fra en cookie under Session_End?
- Skal man være opmærksom på sessiontimeout (Kan sessionen timeoutte mens bruger rent faktisk stadig er på siden)?

Er der nogen som har nogle gode råd?

Venlig hilsen Jensen2005
Avatar billede arne_v Ekspert
22. februar 2008 - 15:09 #1
Session_Start og Session_End er eneste pålidelige metode.

Cookies er vel tilknyttet request og ikke session !?!?

Hvis brugeren sider og læser en side i 30 minutter uden at sende nogle nye
requests vil session time ud.
Avatar billede mikalj Nybegynder
22. februar 2008 - 16:01 #2
websites er stateless

Når en bruger skriver går ind på en side i sin browser, eller trykker på et link eller knap. Så sendes der en forespørgsel til webserveren. Serveren behandler forespørgslet, genererer siden, og afleverer den tilbage til brugeren. Efter dette, slutter forbindelsen. Serveren ved ikke længere hvad brugeren laver på siden.
Når der bliver trykket på en ny knap eller link, starter processen forfra.

Webserveren "snyder" sig til at få et besøg på din side til at virke som en lang process, hvor den husker på data fra forespørgsel til forespørgsel. f.eks. ved at sende en unik kode med til hver brugeren, som den får tilbage næste gang samme bruger sender en forespørgsel. Og på den måde kan bruger til at genkende ham igen.
(hvis du kigger i kildekoden på en side programmeret i asp.net, vil der være et <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="..." /> tag, hvor value indeholder en kode der er omkring 100 tegn lang. Dette er bla. så serveren kan genkende brugeren)

Når en bruger ikke har lavet en forespørgsel i 30 minutter (standard, kan ændres til mere eller mindre) går serveren ud fra at han ikke kommer igen lige foreløbelig, og nedlægger derfor det tilknyttede session objekt (og affyrer derved Session_End eventet) Men, på det tidspunkt at det for sent at læse cookies.

Så ja, en session kan godt time ud med brugeren stadig er på siden, f.eks. hvis han læse en lang artikel, uden at der bliver sendt nogen forespørgsler til webserveren.

Jeg går ud fra at det du vil opnå, er at få noget data om den tid brugeren bruger på siden.
Det kan godt lade sige gøre. Men det vil aldrig blive 100% præcist. Og det involverer brug af javascript og ajax.
Avatar billede arne_v Ekspert
24. februar 2008 - 00:47 #3
Jeg troede faktisk ikke at ASP.NET brugte viewstate til session associering (men kun til
page state).
Avatar billede mikalj Nybegynder
24. februar 2008 - 03:11 #4
Jeg måtte lige slå det op en ekstra gang, men du har ret Arne V. Session associering bliver styret med cookies og ikke viewstate feltet.
Avatar billede jensen2005 Nybegynder
25. februar 2008 - 07:48 #5
Hej

Tak for input.

Ja det jeg vil opnå, er at få noget data om den tid brugeren bruger på siden --> har i nogle råd til det?

Tak for hjælpen --> sæt et par svar ind så i kan få jeres point :-)

Venlig hilsen..........
Avatar billede arne_v Ekspert
25. februar 2008 - 17:38 #6
Hvis det er ren statistik, saa vil jeg sige:
  bedste goer det selv loesning = noget AJAX
  bedste loesning = find og brug en eksisterende loesning som f.eks.
Avatar billede arne_v Ekspert
25. februar 2008 - 17:43 #7
og et svar
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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