ugrás a tartalomhoz

Munkamenet életben tartása.

s_volenszki · 2009. Jún. 7. (V), 08.54
Mi a legegyszerűbb módja annak, hogy böngésző bezárásáig életben tartsak egy munkamenetet?

Ezekre gondoltam:

- Indítok setTimeOut-ot kliensen és meghatározott időközönként beolvastatok egy php-t.
- Teszek egy képet kliensre és azt töltetem újra úgy, hogy a kép egy php-n keresztül olvasódik be.
- Teszek egy iframe-t valahova hidden div-be és azt töltögetem újra ás újra.

Melyik a legoptimálisabb? Tudtok egyebet javasolni?

s_volenszki
 
1

Lemaradt!

s_volenszki · 2009. Jún. 7. (V), 08.55
Az első megoldás esetén AJAX-val olvastatom a php-t.
2

ajax vagy lejárati idő módosítása

Szekeres Gergő · 2009. Jún. 7. (V), 11.00
Ha már mindenképp ezt a megoldást választod, szerintem úgy érdemes csinálni, hogy minél kevesebbet dolgozzon a php, illetve lehetőleg ne legyen felesleges adatátvitel, így a képes megoldás kilőve. Iframe nem jó, mert explorerben "kattog", azaz hangot ad ki lapletöltéskor, ami elég idegesítő ha periódikusan ismétlődik (7-esben már lehet hogy nem, de IE6 alatt biztos). Szóval marad az ajax!

De ha van mód, akkor inkább módosítsd a munkamenet lejárati időt. Már csak azért is, mert így be tudsz állítani egy felső korlátot a lejáratnak (ha pl egy óráig nincs lapletöltés, akkor minek tárold tovább a munkamenetet), mig ezt javascripttel nehézkes lenne megoldani.
3

A helyzet a következő.

s_volenszki · 2009. Jún. 7. (V), 11.26
Egy webalkalmazás munkamenet élettartama 60 percre van állítva. Ha nincs kommunikáció a szerverrel, akkor 60 perc után bekövetkező kommunikáció eredménye a bejelentkező oldal.

Vannak esetek, mikor user nem használja a rendszert több órán keresztül, és amikor újra használná, be kell jelentkeznie. Ez nekem nem lenne gond, user-nek az.

Két lehetőséget fontolgattam:

1. Bejelentkezéskor a munkamenet azonosítót beütöm user-nek sütibe (ami böngésző bezárásáig érvényes) és beírom egy adatbázis rekordba felasználó névvel és jelszóval együtt. Mikor az alkalmazás újra a bejelentkező oldalra kerül, megnézetem, van-e munkamenet süti. Ha van, kiolvasom a hozzá tartozó rekordot és a benne található adatokkal újrahitelesítem user-t.

2. Harminc percenkén AJAX-olok egyet szerverre.

Az első megoldás elegáns, a második egyszerű.
4

cookie

Poetro · 2009. Jún. 7. (V), 11.28
Én cookie-ban tárolnám a session azonosítót, a sessiont pedig saját sessionkezelőben Memcache-ben, fileban vagy adatbázisban, így csak akkor jár le, amikor a PHP azt mondja, hogy lejárt. A cookie-nál meg meg lehet adni, hogy a böngésző bezárásáig éljen.
5

Köszönöm!

s_volenszki · 2009. Jún. 7. (V), 11.40