Я предлагаю создать пользовательский объект, который будет хранить данные, например, 5 минут, и затем он будет перезагружен. Просто создайте объект, который будет загружать ваши данные из сессии, если загруженный объект старше пяти минут, просто перезагрузите данные.
- Загрузить объект
- Проверить переменную в объекте, если (time ()) старше 5 минут (или любое другое время) перезагрузить данные
- Если данные повторно загружают переменную в объекте на новое время и сохраняют ее в сеансе
Я думаю, что это может решить вашу проблему
class MySession
{
public $Duration = 0;
public $Loaded = 0;
public static function Load()
{
$obj = null;
if(isset($_SESSION["my_session"]))
{
$obj = deserialize($_SESSION["my_session"]);
if((time()-$obj->Loaded)>$Duaration)
$obj = self::LoadObject();
}
else { $obj = self::LoadObject(); }
$obj->Save();
return $obj;
}
public function Save()
{
$_SESSION["my_session"] = serialize($this);
}
public static function LoadObject()
{
$obj = new MySession();
$obj->Loaded = time();
//logic for updating data
return $obj;
}
}