スケーリングパフォーマンスの問題の可能性を解決しようとしています。これらの2つのシナリオには、より明確なパフォーマンス上の利点がありますか?
シナリオ1:
ビューをロードし、毎回少量のデータを渡すために、いくつかの呼び出しを行います
コントローラ
public function index()
{
$this->load->view('header');
$this->load->view('table_head');
$results = $this->db->select('*')->from('table')->get()->result_array();
foreach ($results as $key)
{
$this->load->view('table_row', $key);
}
$this->load->view('table_foot');
$this->load->view('footer');
}
table_headを表示
<table>
<thead>
<tr>
<th>...</th>
<th>...</th>
...
</tr>
</thead>
<tbody>
table_rowを表示
<tr>
<td><?php echo $var_a; ?></td>
<td><?php echo $var_b; ?></td>
...
</tr>
Table_footを表示
</tbody>
<tfoot>
<tr>
<td>...</td>
<td>...</td>
...
</tr>
</tfoot>
</table>
シナリオ2:
ビューをロードして大量のデータを渡すために1回の呼び出しを行います
コントローラ
public function index()
{
$this->load->view('header');
$this->data['results'] = $this->db->select('*')->from('table')->get()->result_array();
$this->load->view('table', $this->data);
$this->load->view('footer');
}
表を見る
...
<table>
<thead>Header Info...</thead>
<tbody>
<?php foreach ($results as $key): ?>
<tr>echo row information as needed</tr>
<?php endforeach; ?>
</tbody>
<table>
...
シナリオ1を使用しているのは、コントローラーでロジックループを維持することで、アプリケーションをモジュール式に保ち、MVC形式を維持するのに役立つためです。しかし、SQL呼び出しの結果が1000エントリ、またはそれ以上であるとすると、2つのシナリオの間に明らかなパフォーマンスの違いがありますか?アプリケーションをモジュール化しすぎていませんか?私はできる限り多くのコードをリサイクルしようとしています。その結果、より多くのメソッドが少なくとも8ビューで読み込まれます。