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

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

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

...