PHPでHTMLタグを直接生成しないほうがいい

Web App

SQLから取り出した多次元配列をPHPでHTMLにフツーに落とし込んでいた。

echo '<div class=d_table>'; # css で div をテーブル表示
foreach($rows as $row){
 echo'<div class=d_table_row>';
 $values = array_values($row); # 連想配列から値を取り出し通常の配列に
 foreach($values as $value){
  echo '<div class=d_table_cell>'.$value.'</div>';
 }
 echo '</div>'; # /d_table_row
}
echo '</div>'; # /d_table

いちいち echo していたたわけです。

ところが、処理数がほんの少し増えただけで、ブラウザーのレスポンスが目に見えて悪くなってしまった。

これを一括して return してみたところ、レスポンスがびっくりするくらい速くなった。

$result .= '<div class=d_table>'; # css で div をテーブル表示
foreach($rows as $row){
 $result .= '<div class=d_table_row>';
 $values = array_values($row); # 連想配列から値を取り出し通常の配列に
  foreach($values as $value){
   $result .= '<div class=d_table_cell>'.$value.'</div>';
  }
 $result .= '</div>'; # /d_table_row
}
$result .= '</div>'; # /d_table
return $result;

びっくりするくらい高速じゃ

コメント