У меня есть некоторая информация, которую мне нужно отобразить в виде XML-файла (в частности, XFDF), но по какой-то причине точно такой же контент, который отображается менее чем за полсекунды, когда я говорю, что return response($content, 200)->header('Content-Type', 'text/html');
, занимает больше минуты, когда я меняю что до text/xml
.
Я могу повторить это с помощью следующего минимального шаблона Blade:
<?xml version="1.0" encoding="UTF-8"?>
<xfdf>
@foreach ($stones as $stone)
<placeholder>{{ $stone->job->id }}</placeholder>
@endforeach
</xfdf>
Отображается 275 мс, если мой контроллер говорит:
public function getXFDF($jobIdentifier, $id)
{
$sp = SetPlan::where('id', $id)->first();
$stones = $sp->stones;
$content = view('xml.xfdf.test', compact('stones'));
return response($content, 200)->header('Content-Type', 'text/html');
}
Но измените "html" на "xml", и для отображения точно такого же представления потребуется более 60 секунд.
public function getXFDF($jobIdentifier, $id)
{
$sp = SetPlan::where('id', $id)->first();
$stones = $sp->stones;
$content = view('xml.xfdf.test', compact('stones'));
return response($content, 200)->header('Content-Type', 'text/xml');
}
Ни одна из базовых данных или моделей не отличается - это буквально просто смена двух букв. application/xml
, text/plain
, все остальное делает то же самое.
Это не (по крайней мере, просто ) мой сервер не может правильно обслуживать XML, потому что, если я отправляю через статическое значение или свойство $ stone, которое не зависит от отношения модели (например, $stone->id
вместо $stone->job->id
), замедления нет.
Интересно, что когда он установлен на text/html
, запросы и запросы записываются в телескоп Laravel, но когда он равен text/xml
, это не так.
Любые мысли приветствуются; это странно.