我正在使用带有数据表的CodeIgniter框架,数据加载速度非常慢



>我正在使用数据表用于许多目的,例如分页,搜索,隐藏/显示列等,但是当涉及到将数据加载到页面时,需要花费大量时间。数据库中大约有 5000 个条目,让我在这里向您展示代码以正确理解
数据表脚本:

<script type="text/javascript">
$(document).ready( function () {
oTable = $('#myTable , #complete_ride , #incomplete_ride').DataTable({
"dom": 'Btip',
"deferRender": true,
"ordering" : false,
"pageLength": 20,
"order": [[ 0, "desc" ]],
"scrollX": true,
buttons: ['colvis','excel' , 'csv'],
});
$('#search_item').keyup(function(){
oTable.search($(this).val()).draw();
});
$('input.toggle').on( 'click', function (e) {
e.preventDefault();
// Get the column API object
var column = oTable.column( $(this).attr('data-column') );
// Toggle the visibility
column.visible( ! column.visible() );
});
});
</script>

这是控制器的代码:

function index()
{
$data['user_basic'] = $this->User_basic_model->get_all_user_basic();
$data['_view'] = 'user_basic/index';
$this->load->view('layouts/main',$data);
}

和模型代码:

function get_all_user_basic()
{
$this->db->order_by('user_id', 'desc');
$this->db->select('table1.user_id,
table1.full_name,
table1.email,
table1.phone,
table1.password,
table1.date_of_birth,
table1.gender,
table1.address,
table1.cnic_no,
table1.reg_no,
table1.status,
table1.access_level,
table2.institute_id,
table2.institute_name,
table3.department_id,
table3.department_name,
table1.total_rides,
table1.total_distance,
table1.total_calories,
table1.wallet_amount,
table1.wallet_expiry,
table1.reffered_by,
table1.refferel_key,
table1.failed_login_attempts,
table1.last_login,
table1.last_login_ip,
table1.creation_date,
table1.update_date,
table1.delete_date,
table1.total_time');
$this->db->from('table1');
$this->db->join('table2' , 'table1.institute_id = table2.institute_id' , 'left outer');
$this->db->join('table3' , 'table1.department_id = table3.department_id' , 'left outer');
return $this->db->get()->result_array();
}

我认为这是因为您将所有 5000 个条目都显示在视图中。 在视野中循环5000次是一个很大的痛苦!

尝试使用数据表服务器端处理功能。你可以看看这里 https://datatables.net/examples/data_sources/server_side

该演示包含5M数据,速度很快

相关内容

  • 没有找到相关文章

最新更新