有人可以帮助我解决这种情况吗?当我使用辅助方法运行Controller / View时,输出时间确实很慢:
BENCHMARKS
Loading Time: Base Classes 0.0320
Controller Execution Time ( EquipUser / Detalii ) 3.3030
Total Execution Time 3.3350
我的控制器如下:
public function detalii($service_tag){
// 1. Incarcare elementele necesare in pagina
$this->load->library('javascript');
$this->load->library('javascript/jquery');
$this->output->enable_profiler(TRUE);
//2. Definere campuri pentru incarcare in view
$data['titlu_pagina'] = $service_tag . " ";
$data['service_tag'] = $service_tag;
$data['echipamente'] = $this->Echipament->get_by_service_tag($service_tag);
//3. Incarcare view principal
$this->load->view('detalii', $data);
}
查看区域:
<section id="diverse" class="col-12 col-md-6">
<script type="text/javascript">
$(function () {
$('#ping').click(function () {
var result="<?php echo doPing($echipament->hostname); ?>";
alert(result);
return false;
});
});
</script>
<a class="btn btn-toolbar" id="ping" onclick="ping()">Ping</a>
</section>
和辅助功能:
function pingExec_dr($host){
exec(sprintf('ping -w 1 %s', escapeshellarg($host)), $res, $rval);
return $rval === 0;
}
function doPing($host){
$up = pingExec_dr($host);
if($up){
$result = "<div class='alert alert-success' role='alert'>";
$result .= $host . " ONLINE";
$result .= "</div>";
} else {
$result = "<div class='alert alert-danger' role='alert'>";
$result .= $host . " OFFLINE";
$result .= "</div>";
}
return $result;
}
我也尝试了来自[GitHub-Ping-geerlingguy] [1]的PING类 [1]:https://github.com/geerlingguy/Ping和我有相同的超时时间,但延迟为1毫秒。 我已经用相同的结果测试了jQuery外部方法的调用。 我在其他测试项目(未使用CI)中尝试了ping方法/类,并且没有延迟。
请帮助我。 谢谢。