Avatar billede david_dollas Nybegynder
28. august 2001 - 09:54 Der er 20 kommentarer og
1 løsning

en sides levetid...

Hvordan gør jeg hvis min side skal reloade hvis brugeren benytter sig at IE\'s tilbage knap...?
Avatar billede nikolajdu Nybegynder
28. august 2001 - 09:57 #1
Det kan du ikke.
Avatar billede spang Nybegynder
28. august 2001 - 09:58 #2
Hvis du mener den forrige side (den man kommer til ved at trykke på tilbage-knappen), kan du muligvis bruge dette: http://www.eksperten.dk/spm/102786

\\spang
Avatar billede nikolajdu Nybegynder
28. august 2001 - 09:58 #3
Du kan lave din egen tilbageknap, der reloader din side. <a href=\"#\" onClick=\"self.location.reload(false)\">reload</a>

false gør at siden ikke hentes i cachen - alternativt : True
Avatar billede david_dollas Nybegynder
28. august 2001 - 10:02 #4
Spang : Det der er på den side virker ikke...
Avatar billede roenving Novice
28. august 2001 - 10:10 #5
Så skal du i kagebageriet (ik\' nikolajdu!-).

Dvs. du sætter en cookie, som expirer på kort tid (f.eks. 30 min.) og checker om den er der, reloader hvis den er.

Det synes jeg selv lyder som en bagvendt en, men til gengæld skal den jo ikke reloade, når man kommer ind på siden og de 30 min. kan du jo selv ændre til hvad du synes passer.

<SCRIPT LANGUAGE=\"JavaScript\">

function setCookie(){
    var exp = new Date();
    exp.setTime(exp.getTime()+1800000);//30 min.
    document.cookie=\"reload=true;expires=\"+exp.toGMTString;
}

function checkCookie(){
  if (document.cookie){
    if (document.cookie.indexOf(\'reload=true\')!=-1){
    document.cookie=\"reload=true;expires=\"+exp.toGMTString;
    location.reload();
}
}

</script>

Så kan du checke den fra din

<body ... onLoad=\'checkCookie();\'>

hth
jes
Avatar billede roenving Novice
28. august 2001 - 10:12 #6
Og som nikolajdu nævner, kan vi jo lige sikre at den ikke hentes i cachen med:

location.reload(false);
Avatar billede david_dollas Nybegynder
28. august 2001 - 10:14 #7
Flot og teknisk, men det virker ikke...

Siden skal reloade hvis man kommer til den via tilbage knappen...
Avatar billede roenving Novice
28. august 2001 - 10:21 #8
Ups ... glemte jo lige at initiere cookien:

function checkCookie(){
  if (document.cookie){
    if (document.cookie.indexOf(\'reload=true\')!=-1){
    document.cookie=\"reload=true;expires=\"+exp.toGMTString;
    location.reload();
  }
  else setCookie()
}
Avatar billede david_dollas Nybegynder
28. august 2001 - 10:23 #9
Virker det der i netscape?
Avatar billede roenving Novice
28. august 2001 - 10:47 #10
document.cookie har (såvidt jeg ved ;-) været med siden Netscape opfandt og implementerede Javascript, så det burde den sør\'me !~]
Avatar billede david_dollas Nybegynder
28. august 2001 - 10:50 #11
Jamn, det gør det ikke... Jeg har prøvet nu i IE og netscape, og det virker ikke i nogle af dem...
Avatar billede jakoba Nybegynder
28. august 2001 - 15:40 #12
Lige et øjeblik, Ham Nikolajdu har vist byttet om på sandt og falske :-))

    location.reload(false);
Henter siden fra cashe hvis det er muligt.

    location.reload(true);
Får browseren til at genhente siden fra serveren.

mvh JakobA
Avatar billede nikolajdu Nybegynder
28. august 2001 - 15:44 #13
hovsa da...

Så er det godt med lidt service :-)
Avatar billede david_dollas Nybegynder
29. august 2001 - 09:20 #14
Kan jeg så ikke lige få den fulde, virkbare løsning, i en samlet form?
Avatar billede roenving Novice
29. august 2001 - 10:26 #15
<SCRIPT LANGUAGE=\"JavaScript\">

function setCookie(){
    var exp = new Date();
    exp.setTime(exp.getTime()+1800000);//30 min.
    document.cookie=\"reload=true;expires=\"+exp.toGMTString;
}

function checkCookie(){
  if (document.cookie){
    if (document.cookie.indexOf(\'reload=true\')!=-1){
    setCookie();
    location.reload(true);
  }
  else setCookie()
}


</script>

Så kan du checke den fra din

<body ... onLoad=\'checkCookie();\'>

Alt, hvad vi har fået med er med.

=;·]
Avatar billede jakoba Nybegynder
29. august 2001 - 10:38 #16
Ahem.
  reload trigger onload-eventen een gang til så vil det ikke gå i uendelig løkke? Måske man kunne checke på om det er mindre end 1 sekund siden den cookie sidst blev sat, og så lade være at reloade.
Avatar billede roenving Novice
29. august 2001 - 11:48 #17
Ups ...

Du har jo ret Jakob, så må vi udvide med:

<SCRIPT LANGUAGE=\"JavaScript\">
var exp = \"\"
function setCookie(){
    exp = new Date();
    exp.setTime(exp.getTime()+1800000);//30 min.
    document.cookie=\"reload=true;secs=\"+exp.getMilliseconds+\";expires=\"+exp.toGMTString;
}

function checkCookie(){
  if (document.cookie){
    if (document.cookie.indexOf(\'reload=true\')!=-1){
    var pos = document.cookie.indexOf(\';expires=\');
    var secs = document.cookie.substring(document.cookie.indexOf(\'secs=\')+5, pos-1);
    setCookie();
    if (new Date().getMilliseconds-secs<5000) return;
    location.reload(true);
  }
  else setCookie()
}

</script>

Va\' Jakob, er det ikke hvad der skal til ?? -- Jeg kan lige nu kun kigge på logikken -- arbejdet (og frokosten) kalder.
Avatar billede jakoba Nybegynder
29. august 2001 - 12:22 #18
Lige en rettelse til den lange linie i funktionen checkCookie (pos er det korrekte slutindex allerede, så der skal ikke trækkes 1 fra):

    var secs = document.cookie.substring(document.cookie.indexOf(\'secs=\')+5, pos);

Og så skal jeg nok lade være og brokke mig mere :-))

mvh JakobA
Avatar billede roenving Novice
29. august 2001 - 12:38 #19
*S*
Avatar billede nikolajdu Nybegynder
03. oktober 2001 - 08:56 #20
Endnu en til listen. Det er jo skønt. Sikke meget fritid vi får i længden :-)
Avatar billede david_dollas Nybegynder
03. oktober 2001 - 08:58 #21
HVAD???
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