Представление Laravel отображается намного медленнее при отправке с заголовком text/xml, чем с заголовком text/html

У меня есть некоторая информация, которую нужно отобразить в виде файла 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они не.

Любые мысли приветствуются; это странно.

0 ответов

Другие вопросы по тегам