Avatar billede __ak Nybegynder
11. august 2008 - 12:23 Der er 20 kommentarer og
2 løsninger

Detecte tilbage knap

Aloha alle

Scenarie:
- Brugeren er på min hjemmeside
- Brugeren klikker på et link
- Brugeren bruger sin "Tilbage" knap i browseren for at kommer tilbage til puntk 1
- Jeg vil gerne finde ud af om brugeren har brugt sin tilbage knap - eller om han kommer via link.

De forskellige siders navn varierer for gang til gang, så jeg kan ikke tjekke på et bestemt filnavn eller lign.

Er dette muligt i javascript?

//__ak
Avatar billede w13 Novice
11. august 2008 - 12:31 #1
Nej, desværre ikke.
Avatar billede __ak Nybegynder
11. august 2008 - 12:56 #2
Det var pokkers.
Der er heller ikke nogen halve løsninger?
Avatar billede w13 Novice
11. august 2008 - 13:10 #3
Nej, jeg tror, du må løse dit problem på anden vis.
Avatar billede The Real Yoda Juniormester
11. august 2008 - 13:20 #4
Du kunne via serverside programmering sætte en værdi til en javascript variabel.. og så i javascript sammenligne variablen med vhad tiden er nu .. så kan du jo se hvor længe siden det er siden blev "genereret" på serveren ..

men det er selvfølgelig ikke 100% pålideligt.. men hvis det er over 2 sekunder, så kunne man mistænke det for at være et tilbagehop
Avatar billede w13 Novice
11. august 2008 - 13:28 #5
Servertiden og den tid, som JavaScript henter, er jo som oftest vidt forskellig, så testet skulle nok udelukkende gøres ServerSide.
Avatar billede The Real Yoda Juniormester
11. august 2008 - 13:29 #6
man kunne vel starte med at sætte en session der holder tidsforskellen ..
så er det jo ik svært at sammenligne..
Avatar billede w13 Novice
11. august 2008 - 13:31 #7
Ja, men hvorfor så ikke bare gøre det ServerSide udelukkende? :) JavaScript kan jo disables.
Avatar billede The Real Yoda Juniormester
11. august 2008 - 14:50 #8
fordi jeg ik kan se hvordan du vil gøre det serverside only ? .. men .. do tell
Avatar billede w13 Novice
11. august 2008 - 14:51 #9
Du skriver "og så i javascript sammenligne variablen med hvad tiden er nu", så det kan man vel bare gøre serverside?
Avatar billede w13 Novice
11. august 2008 - 14:52 #10
Men jeg tror ikke helt, jeg forstår din løsning, så det er måske dér, jeg går galt i byen. =)
Avatar billede The Real Yoda Juniormester
11. august 2008 - 15:11 #11
jeg ville ikk vide hvordan man sammenligner det i javascript.. jeg stinker til javascript syntax.. men

eftersom serverside generere siden, ville jeg få serverside til at smide tiden ind i et javascript.. som så kan sammenligne den tid, med den tid som javascripten siger..

og tiden som serverside sætter ind, skal naturligvis tage højde for forskellen mellen javascript og serverside..
Avatar billede w13 Novice
11. august 2008 - 15:35 #12
Ok. Så får du den tid, som det har taget at indlæse siden. Men jeg forstår ikke, hvad du ville med det.
Avatar billede The Real Yoda Juniormester
11. august 2008 - 16:13 #13
at hvis du i javascript har ..

<script>
servertid = <%=serversidetid%>
jstid= now()
if jstid-servertid > 3 sekunder then ..
</script>

for hvis du hopper baglæns til en side, vil tiden i javascript være opdateret, men tiden fra variablen som er leveret fra serverside vil ikke være opdateret .. og derfor vil forskellen være mere end de 3 sekunder..

er det stadig russisk ?
Avatar billede w13 Novice
11. august 2008 - 16:30 #14
Nej, det kan jeg godt følge. Så er man bare på den, hvis serveren lige står og tænker lidt eller Internetforbindelsen er lidt sløv, så der går mere end 3 sekunder, men den tid skulle selvfølgelig bare sættes op så.
Avatar billede The Real Yoda Juniormester
12. august 2008 - 08:24 #15
ja, jeg ville mene at 3 sekunder er fint ..

især hvis det skal bruges til at reloade siden, hvis nu man trykker back .. for hvis så siden hænger.. eller det tager over 3 sek .. så reloader den jo bare..
Avatar billede __ak Nybegynder
12. august 2008 - 10:52 #16
Mange tak for de mange svar, jeg vil prøve lidt forskelligt!
Læg et svar så får i nogle points ;0)
Avatar billede w13 Novice
12. august 2008 - 10:53 #17
:)
Avatar billede The Real Yoda Juniormester
12. august 2008 - 12:19 #18
sådan
Avatar billede mclemens Nybegynder
12. august 2008 - 14:47 #19
Hvis du vælger at benytte dig af javascript time funktion - så
vær opmærksom på at folks system ur ikke nødvendigvis passer med
serverens ur... samt at de selvfølgelig kan sidde i et andet land.

Hvis du skulle måle på systemuret ville det nok være bedre at måle
på systemuret begge gange - d.v.s. sætte tiden i en cookie og så
måle js tiden i cookien med ny tid - når folk vender retur igen.
Avatar billede mclemens Nybegynder
12. august 2008 - 14:55 #20
( w13's forslag om serverside f.eks. session variabel med
sidens url, tid og så lige no cache headers ville jeg
nok selv vælge, så kunne man måle på serverside tid
uden at være afhængig af js ... eller måske kunne
man bare sætte en session filnavn i et array og så
se om det var sat - men de kan jo godt forlade siden
og vende tilbage via. anden side senere, hvor den så
skulle tælle, så tiden er nok rar at have med.

- Men du nævner selv at du ikke kan måle på filnavn,
så ovennævnte er ikke lige en  mulighed andet end
med blot tiden og så en nocache - men det er lidt
bedre end at køre det clientside med js synes jeg.
... men der ryger jo lidt båndbredde ved nocache)
Avatar billede The Real Yoda Juniormester
12. august 2008 - 16:26 #21
jamen serverside køres vel kun når man kommer til siden via et link.. og ikke når man klikker på "BACK" i ens browser ? ..
Avatar billede pidgeot Nybegynder
12. august 2008 - 16:29 #22
Det kommer helt og aldeles an på hvad den side man kommer tilbage til har angivet i dens HTTP headers. Hvis den har angivet at den under ingen omstændigheder må caches, så vil siden blive hentet igen, og dermed bliver evt. server-side kode også kørt. Ellers kan browseren indlæse det igen fra dens cache.
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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