Autor | Zpráva | ||
---|---|---|---|
yenkee Profil * |
#1 · Zasláno: 4. 3. 2007, 16:17:09
Ahoj.
Mám vytvořenou aplikaci, se kterou může pracovat maximálně jeden uživatel v danou chvíli. Když se chci přihlásit a někdo již je přihlášen, tak mě to nedovolí přihlásit se a vypíše se hláška, že již s programem někdo pracuje. Problém ale nastane, pokud uživatel, který s programem již pracuje, ukončí svou práci tím, že prostě zavře okno. Tím pádem se už do programu nedostane nikdo do té doby, než session bude na serveru vymazána. Nenapadá vás nějaky způsob, jak se dá něco podobného vyřešit jinak, než třeba snížením doby platnosti session? Napadlo mě, jestli by to nešlo přes JavaScript pomocí OnClose. Že by se zavolal jednoduchý skript, který by zrušil session. Díky. |
||
koudi Profil |
#2 · Zasláno: 4. 3. 2007, 16:41:45
Mam pocit, že zavření okna onClose nevyvolá. Nebo imho alespoň ne spolehlivě všude.
Asi budeš muset nechat tu session prostě vytimeoutovat. |
||
habendorf Profil |
#3 · Zasláno: 4. 3. 2007, 16:55:30
Nejsem si jist, jestli nějaké onclose vůbec existuje. Když už, tak onunload.
|
||
Yrrah Profil |
#4 · Zasláno: 4. 3. 2007, 16:58:49
Jo, je to onUnload.
Bohužel, ten se zavolá i při RELOADu stránky, což je pro tohle nevhodné :-( |
||
habendorf Profil |
#5 · Zasláno: 4. 3. 2007, 17:00:44
Jo, je to onUnload
Ne, je to onunload. Bohužel, ten se zavolá i při RELOADu stránky, což je pro tohle nevhodné :-( Jj, tohle si musí ošetřit aplikace i bez klienta. |
||
Alphard Profil |
#6 · Zasláno: 4. 3. 2007, 17:46:19
co třeba vložit do stránek javascript, který by se pravidelně hlásil (třeba AJAX) a pak 5 minut bez ohlášení -> logout
|
||
Yrrah Profil |
#7 · Zasláno: 4. 3. 2007, 18:13:18
To je ale to samý, co timeout. To už si rovnou může někam ukládat časový razítko posledního přístupu každý session a pravidelně to aktualizovat a odmazávat.
|
||
habendorf Profil |
#8 · Zasláno: 4. 3. 2007, 18:30:11
Pochopte, že tohle nelze řešit na úrovni klienta. Když bude mít jeden ze sta vypnutý JS, je celá aplikace v háji.
|
||
Časová prodleva: 17 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0