У меня есть некоторая информация, которую мне нужно отобразить в виде файла 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
они не.
Любые мысли приветствуются; это странно.
Задача ещё не решена.
Других решений пока нет …