/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Udføre handling ved afslutning af besøg...
Fra : MooreHojer


Dato : 18-03-05 16:13

Hej NG

Kan man i ASP lave en handling der automatisk udføres når brugeren
forlader siden eller helt lukker vinduet?

Det skal bruges i forbindelse med en chat hvor brugeren skal slettes fra
den database der holder styr hvem der er online.

--
Moore Hojer


 
 
Jens Gyldenkærne Cla~ (18-03-2005)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 18-03-05 16:40

MooreHojer skrev:

> Kan man i ASP lave en handling der automatisk udføres når brugeren
> forlader siden eller helt lukker vinduet?

Nej. En webserver har ingen kontrol med hvornår brugeren vælger at
forlade siden. Når man besøger en asp-side (eller en hvilken som helst
anden webside), beder browseren om at få leveret koden til siden fra
webserveren. Webserveren svarer så og leverer koden hvis den findes (og
der ikke er adgangsbegrænsninger eller andet sjov). Herefter ligger
koden i browseren, og webserveren - eller et script på webserveren - kan
ikke vide hvad browseren/brugeren foretager sig på siden før der næste
gang klikkes på noget.

Med javascript kan man - i hvert fald i nogle browsere - få noget kode
til at køre på hændelsen onunload. Men hvis koden skal registreres på
serveren, kræver det at javascriptet kalder en ny side fra webserveren.
Det vil nemt blive opfattet som et uønsket siderequest og blive blokeret
af browseren.

Den eneste farbare vej mht. at registrere når folk forsvinder, er at
sørge for at de mens de er online rimelig tit sender et request til
serveren (fx i form af en side eller en frame der reloader med et
bestemt interval). Når der så ikke længere kommer disse siderequests, må
man antage at brugeren har forladt siden.

--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

MooreHojer (18-03-2005)
Kommentar
Fra : MooreHojer


Dato : 18-03-05 17:03

> Den eneste farbare vej mht. at registrere når folk forsvinder, er at
> sørge for at de mens de er online rimelig tit sender et request til
> serveren (fx i form af en side eller en frame der reloader med et
> bestemt interval). Når der så ikke længere kommer disse siderequests,
> må
> man antage at brugeren har forladt siden.

ok, men hvordan kan man tjekke at den ikke længere reloader? Når den
ikke gør det så er der ikke længere nogen side der kan slette fra
databasen...

--
Moore Hojer


Lars Hoffmann (20-03-2005)
Kommentar
Fra : Lars Hoffmann


Dato : 20-03-05 01:16

Jens Gyldenkærne Clausen wrote:
> MooreHojer skrev:
>
>
>>Kan man i ASP lave en handling der automatisk udføres når brugeren
>>forlader siden eller helt lukker vinduet?
>
>
> Nej. En webserver har ingen kontrol med hvornår brugeren vælger at
> forlade siden. Når man besøger en asp-side (eller en hvilken som helst
> anden webside), beder browseren om at få leveret koden til siden fra
> webserveren. Webserveren svarer så og leverer koden hvis den findes (og
> der ikke er adgangsbegrænsninger eller andet sjov). Herefter ligger
> koden i browseren, og webserveren - eller et script på webserveren - kan
> ikke vide hvad browseren/brugeren foretager sig på siden før der næste
> gang klikkes på noget.

Mjaeh, det er jo en sandhed med modifikationer. Man kan bruge session_onEnd
funktionen i global.asa. Det er naturligvis ikke når siden forlades, men i
praksis kan det løse de fleste problemerstillinger i denne boldgade.
Med venlig hilsen
Lars Hoffmann

Johnny Winther Ronne~ (20-03-2005)
Kommentar
Fra : Johnny Winther Ronne~


Dato : 20-03-05 03:00


"Lars Hoffmann" <lars@intercambiodvd.com> skrev i en meddelelse
news:3a3tkcF65k6hpU1@individual.net...
> Jens Gyldenkærne Clausen wrote:
> > MooreHojer skrev:
> >
> >
> >>Kan man i ASP lave en handling der automatisk udføres når brugeren
> >>forlader siden eller helt lukker vinduet?
> >
> >
> > Nej. En webserver har ingen kontrol med hvornår brugeren vælger at
> > forlade siden. Når man besøger en asp-side (eller en hvilken som helst
> > anden webside), beder browseren om at få leveret koden til siden fra
> > webserveren. Webserveren svarer så og leverer koden hvis den findes (og
> > der ikke er adgangsbegrænsninger eller andet sjov). Herefter ligger
> > koden i browseren, og webserveren - eller et script på webserveren - kan
> > ikke vide hvad browseren/brugeren foretager sig på siden før der næste
> > gang klikkes på noget.
>
> Mjaeh, det er jo en sandhed med modifikationer. Man kan bruge
session_onEnd
> funktionen i global.asa. Det er naturligvis ikke når siden forlades, men i
> praksis kan det løse de fleste problemerstillinger i denne boldgade.
> Med venlig hilsen
> Lars Hoffmann

Enig, men det kræver en stump javascript at gennemtvinge en abandon, således
at on end udløses. Svaret har faktisk værest vist i en af
webdesigngrupperne. Det har også været oppe omkring, at genere en popup når
siden forlades. Hvilket stort set er det samme problem. Serveren skal have
at vide at siden forlades. Så svaret findes allerede enten i clieentside
eller asp.

Med venlig hilsen
Johnny Winther Ronnenberg




Arne H.Wilstrup (20-03-2005)
Kommentar
Fra : Arne H.Wilstrup


Dato : 20-03-05 08:22


"Johnny Winther Ronnenberg" <johnny.winther@XYZ789tdcadsl.dk> skrev i en
meddelelse news:423cd922$0$154$edfadb0f@dread11.news.tele.dk...

Er det I taler om den samme irriterende "feature" der gør det vanskeligt at
forlade en side ved brug af tilbagepilen, når man render ind i en asp-side?
Jeg har flere gange været inde på sådanne sider, og når jeg har set, hvad
siden har at byde på, vil jeg benytte mig af tilbagepilen til at komme
tilbage til fx Google eller lignende, men det nægter mange asp-producerede
sider mig - jeg bliver nødt til at starte helt forfra ved at lukke browseren
og dernæst starte den igen - og jeg taler ikke her om en side, der åbner
en ny side, men om en side, der findes via regulær søgning, og som ikke
tillader tilbage-"spoling" uden videre.

--
ahw



Lars Hoffmann (20-03-2005)
Kommentar
Fra : Lars Hoffmann


Dato : 20-03-05 10:38

Arne H.Wilstrup wrote:
> "Johnny Winther Ronnenberg" <johnny.winther@XYZ789tdcadsl.dk> skrev i en
> meddelelse news:423cd922$0$154$edfadb0f@dread11.news.tele.dk...
>
> Er det I taler om den samme irriterende "feature" der gør det vanskeligt at
> forlade en side ved brug af tilbagepilen, når man render ind i en asp-side?

Nej, det har intet med det at gøre. session_onEnd er blot en event der udføres
når en session ikke længere eksisterer. Ofte bruges den til at rydde op i
midlertidige databaser eller lignende (f.eks slette en indkøbskurv).

> Jeg har flere gange været inde på sådanne sider, og når jeg har set, hvad
> siden har at byde på, vil jeg benytte mig af tilbagepilen til at komme
> tilbage til fx Google eller lignende, men det nægter mange asp-producerede
> sider mig - jeg bliver nødt til at starte helt forfra ved at lukke browseren
> og dernæst starte den igen - og jeg taler ikke her om en side, der åbner
> en ny side, men om en side, der findes via regulær søgning, og som ikke
> tillader tilbage-"spoling" uden videre.

ASP er serverside og har som sådan ikke indflydelse på hvordan din browser
opfører sig. Det kan dog være at der bliver brugt en response.redirect fra
side A til side B og når du så bruger din tilbage knap, lander du igen på side
A, der så automatisk sender dig til side B. Dette er dog ikke specielt for ASP
sider, da en serverside redirect er en standard HTTP header og kan bruges fra
et hvilket som helst serverside programmeringssprog.

Næste gang du sidder med problemet kan du sikkert omgå det ved at
dobbeltklikke på din tilbage knap.

Med venlig hilsen
Lars Hoffmann

Arne H.Wilstrup (20-03-2005)
Kommentar
Fra : Arne H.Wilstrup


Dato : 20-03-05 11:21


"Lars Hoffmann" <lars@intercambiodvd.com> skrev i en meddelelse
news:3a4uhoF66ajogU1@individual.net...
[..]>
> Næste gang du sidder med problemet kan du sikkert omgå det ved at
> dobbeltklikke på din tilbage knap.

tak for det udførlige svar!

--
ahw



Lars Hoffmann (20-03-2005)
Kommentar
Fra : Lars Hoffmann


Dato : 20-03-05 10:32

Johnny Winther Ronnenberg wrote:

> Enig, men det kræver en stump javascript at gennemtvinge en abandon, således
> at on end udløses.

Næh, det gør det da ikke. session_onEnd udføres når sessionen dør. Det kan
være enten ved session.abandon eller blot fordi den timeouter.

Med venlig hilsen
Lars Hoffmann

Jens Gyldenkærne Cla~ (20-03-2005)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 20-03-05 21:11

Lars Hoffmann skrev:

> Mjaeh, det er jo en sandhed med modifikationer. Man kan bruge
> session_onEnd funktionen i global.asa.

Den burde jeg have nævnt - for den er ganske rigtigt oplagt til at
køre "siden-forladt"-instruktioner.

Men man skal dog være opmærksom på at session_onEnd kan være drilsk
- det er ikke alle typer af operationer der går glat igennem.

Først og fremmest har man ikke nogen side at udskrive noget på (alt
hvad der køres i session_onEnd bliver netop ikke requestet af en
browser). Det betyder dels at man ikke kan skrive "din session er
nu slut" til brugeren, og dels at det er besværligt at kontrollere
om den kode man har skrevet bliver afviklet korrekt (da man fx ikke
kan få udskrevet debug-linjer mv.)

Det skulle vist nok være muligt at opdatere en database via
session_onEnd - men man er på den hvis opdateringen resulterer i
fejl - for der er ikke nogen browser der kan modtage
fejlmeddelelsen.

Endelig mener jeg også at der session_onEnd nogle gange kan blive
"sprunget over". Jeg har dog glemt de nærmere omstændigheder - ret
mig endelig hvis jeg tager fejl.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Jens Peter Rosenkvis~ (20-03-2005)
Kommentar
Fra : Jens Peter Rosenkvis~


Dato : 20-03-05 22:26

Jens Gyldenkærne Clausen wrote:
> Lars Hoffmann skrev:
>
>>Mjaeh, det er jo en sandhed med modifikationer. Man kan bruge
>>session_onEnd funktionen i global.asa.
>
> Det skulle vist nok være muligt at opdatere en database via
> session_onEnd - men man er på den hvis opdateringen resulterer i
> fejl - for der er ikke nogen browser der kan modtage
> fejlmeddelelsen.

Jeg bruger det på min side til at opdatere databasen og det fungerer
helt efter hensigten.
Da jeg udviklede det, prøvede jeg det dog først på en almindelig side.

> Endelig mener jeg også at der session_onEnd nogle gange kan blive
> "sprunget over". Jeg har dog glemt de nærmere omstændigheder - ret
> mig endelig hvis jeg tager fejl.

Har jeg hørt flere sige, men har ikke kunnet finde noget info om det og
har heller ikke været ude for, at det ikke er sket.
Men det er selvfølgelig ikke nogen garanti for, at det ikke kan ske.

terje (21-03-2005)
Kommentar
Fra : terje


Dato : 21-03-05 09:13

Jens Peter Rosenkvist wrote:

> Har jeg hørt flere sige, men har ikke kunnet finde noget info om det og
> har heller ikke været ude for, at det ikke er sket.
> Men det er selvfølgelig ikke nogen garanti for, at det ikke kan ske.

Noe mer informasjon her:
http://www.aspfaq.com/show.asp?id=2078

terje

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408926
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste