【发布时间】:2020-09-22 10:04:10
【问题描述】:
我在 codeigniter 中创建了一个 DataTable,它已经在处理少量数据,但我想用 100 万行数据运行该项目。不幸的是,它无法处理如此大量的数据。
我应该在下面的代码中添加/更改什么? 我正在使用 codeigniter、oracle 数据库和 odbc 驱动程序
谢谢!
//JavaScript
<script>
$('#user-list').DataTable({
"processing": true,
dom: 'Bfrtip',
buttons: [
'excel'
],
"ajax": {
url : "<?php echo base_url(); ?>Reports/get_User,
type : 'GET'
},
"aoColumns": [
{ "data": "ID" },
{ "data": "FirstName" },
{ "data": "LastName" },
{ "data": "Address"},
{ "data": "Email" },
]
});
</script>
//html
<table id="user-list" class="table table-bordered table-striped table-hover">
<thead>
<tr>
<th>ID</th>
<th>First name</th>
<th>Last name</th>
<th>Address</th>
<th>Email</th>
</tr>
</thead>
</table>
//controller
public function get_User()
{
$draw = intval($this->input->get("draw"));
$start = intval($this->input->get("start"));
$length = intval($this->input->get("length"));
$query =$this->db->query("SELECT * FROM users");
$data = [];
foreach($query->result() as $r) {
$data[] = array(
$r-ID
$r-FirstName,
$r-LastName,
$r-Address,
$r-Email,
$r_tab[] = $r
);
}
$result = array(
"draw" => $draw,
"recordsTotal" => $query->num_rows(),
"recordsFiltered" => $query->num_rows(),
"data" => $data,
"data" => $r_tab
);
echo json_encode($result);
exit();
}
【问题讨论】:
-
“它不起作用”是什么意思?你得到一个明确的错误/你的请求超时/其他失败类型?
-
请求超时。
-
您应该使用 ajax 来获取特定数量的数据而不是所有行。数据表通常隐藏其他行并显示 10 页。但浏览器无法承受海量数据的压力
标签: oracle codeigniter datatables odbc