mirror of
https://github.com/phpbb/phpbb.git
synced 2025-08-09 10:16:36 +02:00
[ticket/14462] Further speed improvements
- Cache the secondary container - Only initialize tasks/modules that are being used - Add timeout error message in the AJAX UI PHPBB3-14462
This commit is contained in:
@@ -209,9 +209,15 @@ class ajax_iohandler extends iohandler_base
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function send_response()
|
||||
public function send_response($no_more_output = false)
|
||||
{
|
||||
$json_data_array = $this->prepare_json_array();
|
||||
$json_data_array = $this->prepare_json_array($no_more_output);
|
||||
|
||||
if (empty($json_data_array))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
$json_data = json_encode($json_data_array);
|
||||
|
||||
// Try to push content to the browser
|
||||
@@ -223,23 +229,43 @@ class ajax_iohandler extends iohandler_base
|
||||
/**
|
||||
* Prepares iohandler's data to be sent out to the client.
|
||||
*
|
||||
* @param bool $no_more_output Whether or not there will be more output in this response
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
protected function prepare_json_array()
|
||||
protected function prepare_json_array($no_more_output = false)
|
||||
{
|
||||
$json_array = array(
|
||||
'errors' => $this->errors,
|
||||
'warnings' => $this->warnings,
|
||||
'logs' => $this->logs,
|
||||
'success' => $this->success,
|
||||
'download' => $this->download,
|
||||
);
|
||||
$json_array = array();
|
||||
|
||||
$this->errors = array();
|
||||
$this->warnings = array();
|
||||
$this->logs = array();
|
||||
$this->success = array();
|
||||
$this->download = array();
|
||||
if (!empty($this->errors))
|
||||
{
|
||||
$json_array['errors'] = $this->errors;
|
||||
$this->errors = array();
|
||||
}
|
||||
|
||||
if (!empty($this->warnings))
|
||||
{
|
||||
$json_array['warnings'] = $this->warnings;
|
||||
$this->warnings = array();
|
||||
}
|
||||
|
||||
if (!empty($this->logs))
|
||||
{
|
||||
$json_array['logs'] = $this->logs;
|
||||
$this->logs = array();
|
||||
}
|
||||
|
||||
if (!empty($this->success))
|
||||
{
|
||||
$json_array['success'] = $this->success;
|
||||
$this->success = array();
|
||||
}
|
||||
|
||||
if (!empty($this->download))
|
||||
{
|
||||
$json_array['download'] = $this->download;
|
||||
$this->download = array();
|
||||
}
|
||||
|
||||
if (!empty($this->form))
|
||||
{
|
||||
@@ -293,6 +319,11 @@ class ajax_iohandler extends iohandler_base
|
||||
$this->redirect_url = array();
|
||||
}
|
||||
|
||||
if ($no_more_output)
|
||||
{
|
||||
$json_array['over'] = true;
|
||||
}
|
||||
|
||||
return $json_array;
|
||||
}
|
||||
|
||||
@@ -398,7 +429,7 @@ class ajax_iohandler extends iohandler_base
|
||||
public function redirect($url, $use_ajax = false)
|
||||
{
|
||||
$this->redirect_url = array('url' => $url, 'use_ajax' => $use_ajax);
|
||||
$this->send_response();
|
||||
$this->send_response(true);
|
||||
}
|
||||
|
||||
/**
|
||||
|
Reference in New Issue
Block a user