webForumDet fria alternativet

Anropa funktion när användaren lämnar sidan?

.NET

4 svar · 474 visningar · startad av Lukaspojken

Medlem sedan maj 20011 312 inlägg
Frågan#1

Finns det något bra sätt att anropa en funktion när användaren lämnar sidan? Jag har funderat på att använda mig av body-onunload men problemet med det är att den anropas vid varje postback. Finns det något annat sätt?

Medlem sedan dec. 19998 577 inlägg
#2

I global.asax har du en metod som heter Session_End, där kan du lägga kod som körs när en session slutar.

obs: du måste ha sessionstate mode InProc i web.config för att det skall fungera.

Medlem sedan maj 20011 312 inlägg
#3

Det var bra du nämnde det för det är ett användarflöde jag inte tänkt på men det är inte riktigt det flödet jag tänker mig. Jag tänker mig mer att om användaren klickar på en länk som går till en annan sida på en och samma webbplats.

Jag fick ett förslag om att eventuellt i en ärvd page-klass använda mig av servervariablen HTTP_REFERER, dvs om användaren kommer från sidan X så ska jag alltid anropa en metod. Det känns inte riktigt klockrent. Har ni några andra förslag så kom gärna med det.

Medlem sedan nov. 200013 890 inlägg
#4

Värdet i HTTP_REFERER kan användaren ändra själv och vissa brandväggar lämnar inte ut ens informationen, så det är väldigt riskabelt att förlita sig på just HTTP_REFERER.

Medlem sedan juni 20008 205 inlägg
#5

Lukaspojken skrev:

Det var bra du nämnde det för det är ett användarflöde jag inte tänkt på men det är inte riktigt det flödet jag tänker mig. Jag tänker mig mer att om användaren klickar på en länk som går till en annan sida på en och samma webbplats.

Jag fick ett förslag om att eventuellt i en ärvd page-klass använda mig av servervariablen HTTP_REFERER, dvs om användaren kommer från sidan X så ska jag alltid anropa en metod. Det känns inte riktigt klockrent. Har ni några andra förslag så kom gärna med det.

Som sagt, referrer är inte tillförlitligt. Kan komma på två någorlunda tillförlitliga tillvägagångssätt.

Det första är att spara undan i användarens session vilken sida man kommer ifrån, och sedan kolla detta på de andra relevanta sidorna. Något bökigt, inte bara för att vissa browsers ogillar cookies, men också för att man kan vara på flera sidor samtidigt med olika webbläsarfönster.

Det andra är URL-omskrivning. Alla länkar från den berörda sidan får antingen en specifik querystring på sig, och sen kollar sidorna man går till efter detta querystringvärde, eller så gör man en redirectsida som länkarna går igenom som kör den relevanta koden och som sedan vidarebefordrar användaren till rätt sida.

1636 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
1501 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
1501 ms — ändringar (db)