11. august 2008 - 12:23Der 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.
Hos Computerworld it-jobbank er vi stolte af at fortsætte det gode partnerskab med folkene bag IT-DAY – efter vores mening Danmarks bedste karrieremesse for unge og erfarne it-kandidater.
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
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..
<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..
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å.
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..
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.
( 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)
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.
Synes godt om
Ny brugerNybegynder
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.