mirror of
https://github.com/YGGverse/Yoda.git
synced 2026-04-01 00:55:28 +00:00
fix response expiration event
This commit is contained in:
parent
1079da78b5
commit
5c2aeec8cc
2 changed files with 20 additions and 11 deletions
|
|
@ -105,7 +105,8 @@ class Page
|
|||
|
||||
public function update(
|
||||
bool $history = true,
|
||||
int $refresh = 100
|
||||
int $refresh = 100,
|
||||
int $timeout = 5
|
||||
): void
|
||||
{
|
||||
// Update history
|
||||
|
|
@ -133,13 +134,17 @@ class Page
|
|||
|
||||
// Update content by multi-protocol responser
|
||||
$response = new \Yggverse\Yoda\Model\Response(
|
||||
$this->navbar->request->getValue()
|
||||
$this->navbar->request->getValue(),
|
||||
$timeout
|
||||
);
|
||||
|
||||
// Calculate expiration time
|
||||
$expire = time() + $timeout;
|
||||
|
||||
// Listen response
|
||||
\Gtk::timeout_add(
|
||||
$refresh,
|
||||
function() use ($response)
|
||||
function() use ($response, $expire)
|
||||
{
|
||||
// Redirect requested
|
||||
if ($location = $response->getRedirect())
|
||||
|
|
@ -205,8 +210,18 @@ class Page
|
|||
|
||||
else $this->response->hide();
|
||||
|
||||
// Stop event loop on request expired or completed
|
||||
if ($response->isExpired() || $response->isCompleted())
|
||||
// Stop event loop on request completed
|
||||
if ($response->isCompleted())
|
||||
{
|
||||
// Hide progressbar
|
||||
$this->progressbar->hide();
|
||||
|
||||
// Stop
|
||||
return false;
|
||||
}
|
||||
|
||||
// Stop event loop on request expired
|
||||
if (time() > $expire)
|
||||
{
|
||||
// Hide progressbar
|
||||
$this->progressbar->hide();
|
||||
|
|
|
|||
|
|
@ -15,7 +15,6 @@ class Response
|
|||
|
||||
// Async status
|
||||
private bool $_completed = false;
|
||||
private bool $_expired = false;
|
||||
|
||||
// Response
|
||||
private ?string $_title = null;
|
||||
|
|
@ -293,11 +292,6 @@ class Response
|
|||
return $this->_completed;
|
||||
}
|
||||
|
||||
public function isExpired(): bool
|
||||
{
|
||||
return $this->_expired;
|
||||
}
|
||||
|
||||
public function getTitle(): ?string
|
||||
{
|
||||
return $this->_title;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue