Avatar billede trp79 Nybegynder
14. november 2006 - 09:23 Der er 5 kommentarer og
1 løsning

Holde session i live

Hejsa
Jeg har en større form, hvor brugere indimellem når at times ud før de får submittet den. Jeg kan naturligivs ændre session timeout for at undgå dette, men det er jeg ikke interesseret i, da session timeout så også ændres for en helt masse andet.

Så jeg håber at nogle har andre løsning på, hvordan jeg kan holde session i live. Den forkromede løsning er vel AJAX, hvor der kontinuerligt sendes information fra klienter (i hver fald så længde klienten indtaster noget), men hvad er der af alternative løsning? (brugeren må naturligvis ikke tabe de data, som brugeren har indtastet.)

Man kommer jo nok ikke ud over noget client side....? Platformen er Weblogic 6.1.

På forhånd tak, mvh
Torben
Avatar billede trp79 Nybegynder
14. november 2006 - 10:36 #1
En løsning er selvfølgelig også session.setMaxInactiveInterval(int sec), da denne sætter timeouten for den specifikke session, hvorved det timeout ikke ændres for alt andet. Dog vil brugeren jo så efterfølgende (i sessionen) have den session timeout, der er sat, og derved også have den for de andre sider mv. der ligger i applikationen - det kunne man selvfølgelig undgå ved at sætte session timeout ud fra web.xml når brugeren har submittet formen, som kan tage lang tid at udfylde.
Avatar billede -mundi- Nybegynder
14. november 2006 - 10:38 #2
en af de mere simple løsninger er at lave en iframe som du skjuler via css. den side refresher så  f.eks hvert 10 minutter
Avatar billede -mundi- Nybegynder
14. november 2006 - 10:42 #3
<iframe style="display:none;position:absolute;" src="keepalive.jsp"></iframe>

keepalive.jsp:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >

<html>
  <head>
    <title>keepalive</title>
    <script type="text/javascript">
      setTimeout('document.location.reload(true)',600000)
    </script>
  </head>
  <body>
       
  </body>
</html>
Avatar billede trp79 Nybegynder
14. november 2006 - 10:55 #4
Det ser faktisk fornuftigt ud :) Hvor lang tid angiver de 600000 ?
Avatar billede -mundi- Nybegynder
14. november 2006 - 10:59 #5
det er i milisekunder.
dvs 10 minutter = 600 sekunder = 600000 milisekunder
Avatar billede trp79 Nybegynder
14. november 2006 - 11:00 #6
super, tak for hjælpen du :)
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
Kurser inden for grundlæggende programmering

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