laravel8にて、
コントローラ側でdomデータを取得して表示させる場合(1)と、
view側(テンプレートエンジン内)でdomのデータを作成して表示する場合(2)とで、
処理時間は変わりますでしょうか?
というのも、(1)のようにコーディングされているものを(2)のようにテンプレートエンジンを使用してコーディングするようにし、反映したところサーバのCPU使用率が増加してしまいまして、原因を追求しているところです。
(1)→(2)に変更したときに、同じ処理になるように、コントローラ側でdomデータを作成するためのforeach等は、blade側で行うようにしております。
行っている処理は同じのためあまり変わらないのかなと思ったのですが、現在原因の追求が滞ってしまいまして。ご助力いただけると幸いです。
(1)の例
***Controller.php
$result = '<p>このような感じでタグやクラスも含まれたhtmlの文字列をresultに入れます。</p>'; ←ここで、モデル等も呼び、htmlの文字列全て作成します。 return view(top, compact('result'));
↓
top.blade.php
{!! $result !!}
(2)の例
***Controller.php
$result = モデルから取得したデータ; ←htmlの文字列ではなく、bladeで使用するデータのみを取得します。 return view(top ,conpact('result'));
↓
top.blade.php
@foreach ($result as $a) <p>{{ $a }}</p> @endforeach
試したこと
処理時間の計測を行いました
(1)の場合は、***Controller.phpの$result取得する箇所を、
(2)の場合は、top.blade.phpの一番上から下までを
測定しました。
そうしますと、(2)の方が(1)の10倍くらいの処理時間がありました。
回答1件
あなたの回答
tips
プレビュー