我正在做一个关于测试门户的项目。我的控制器中有这样的东西。
$process = new Process(['../app/Http/Controllers/shcheck.py', '-dj', $request->IP]);
try {
$process->mustRun();
while ($process->isRunning()) {
// waiting for process to finish
}
$headers = json_decode($process->getOutput(),true);
$data= array('title'=> $title,
'headers'=> $headers);
return view('pages.index')->with($data);
} catch (ProcessFailedException $exception) {
echo $exception->getMessage();
}
但是这种方法是不可扩展的,因为我的一些测试可以运行超过一分钟,所以我在谷歌上搜索,发现我可以使用事件和侦听器,将它们堆叠到队列中,而不是等到作业完成。但现在。我有问题,监听器完成工作后如何将 headers 变量传递给 FE?
我有这个作为我要查看的blade.php文件
@if(isset($headers))
@if(count($headers)>0)
<div class="no-gutters border rounded overflow-hidden flex-md-row shadow-sm position-relative p-2 row">
<ul>
@foreach($headers as $head=> $head_value)
<li>{{$head}}</li>
<ul>
@foreach($head_value as $he=> $x_value)
@if(strlen($he)>3)
<li>{{$he}}: {{$x_value}}</li>
@endif
@if(strlen($he)<=3)
<li>{{$x_value}}</li>
@endif
@endforeach
</ul>
@endforeach
</ul>
</div>
@endif
@endif
我需要以某种方式包括 Ajax 来完成这种工作吗?或者最好的方法是什么。