Immaginate una maschera di modifica di un record che, per poter riconoscere quali campi del record sono stati modificati dall'utente (così da salvare solo quelli effettivamente modificati, in modo che eventuali altre modifiche effettuate da altri utenti su altri campi non vengano azzerate dal salvataggio di una maschera in cui quei campi non sono stati modificati) salva in sessione se stessa, così da poter sempre sapere quali erano i valori letti dal db dei vari campi al momento della creazione della maschera stessa.
Naturalmente, tutto ciò significa che esiste una sessione di login attiva con una certa durata, ma anche che è necessario che queste maschere che vengono salvate nella sessione scadano dopo un certo lasso di tempo, che deve essere minore della durata della sessione stessa, visto che in una sessione verranno usate molte maschere diverse, che potrebbero fare crescere eccessivamente la dimensione dei dati salvati in sessione.
Quindi, all'interno della sessione, ho creato un altro meccanismo di timeout che fa scadere le maschere salvate dopo un certo tempo di inattività, appunto inferiore alla durata della sessione stessa.
Questo però implica che se, invece, l'utente rimane parecchio tempo su una maschera per inserirne i contenuti, potrebbe avere dei problemi in fase di salvataggio perché, nonostante la sua sessione sia ancora attiva, la maschera potrebbe essere invece scaduta (cosa che, dal punto di vista della prevenzione dello spam, non è poi malvagia, ma potrebbe essere assai fastidiosa per l'utente).
Poiché in fase di login è stata verificata in modo certo la presenza di javascript, utilizzo un piccolo ajax che carica ogni tot secondi, naturalmente finché l'utente tiene aperta la maschera nel browser, un apposito script che rinfresca la maschera salvata in sessione.
E voi direte: e tutto questo che problema ha?
Il problema, non grave ma che mi infastidisce, è che , naturalmente, lo script di refresh che viene chiamato dall'ajax DEVE caricare la sessione, visto che deve manipolare le maschere che vi sono salvate dentro, e quindi... la prolunga!
Quello che vorrei ottenerne è di poter caricare la sessione SENZA prolungarne automaticamente la durata, ovvero vorrei poter decidere QUALI url quando caricate prolungano la sessione e quali no.
Pensate ad esempio anche ad una parte di un sito web contenente dei banner a rotazione, ricaricati tramite ajax: anch'essi avrebbero l'effetto collaterale di rinfrescare la sessione, impedendo di fatto che avvenga il logout automatico per scadenza della sessione stessa...
Che ne pensate? Grazie a tutti gli esperti che vorranno dire la loro!