我正在尝试解决可能的扩展性能问题。这两种情况是否有更明显的性能优势:
场景一:
多次调用以加载视图并每次传递少量数据
控制器
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>
场景二:
进行 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 个条目,甚至更多,这两种场景之间是否存在明显的性能差异?我是否试图让我的应用程序过于模块化?我确实尝试尽可能多地回收我的代码,因此我的更多方法将至少加载 8 个视图。