У меня есть таблица mysql с примерно 30000 строками. Я должен поместить все строки в DataTable и загружать каждый сегмент каждый раз, когда загружается страница таблицы (когда вы нажимаете на разбиение на страницы). Я видел, что я могу использовать параметр deferLoading в моем JS, но когда я его использую, мои страницы не загружаются. Как вы можете видеть, что я должен загружать изображения, так что я абсолютно необходимо сделать легкую загрузку контента ...DataTables: DeferLoading работает неправильно
Вот мой HTML:
<table class="table table-striped table-bordered table-hover datatable products-datatable">
<thead>
<tr>
<th></th>
<th><?=_("Product")?></th>
<th></th>
</tr>
</thead>
<tfoot>
<tr>
<th></th>
<th><?=_("Product")?></th>
<th></th>
</tr>
</tfoot>
</table>
Вот мои JS:
var table = $('.products-datatable').dataTable({
"order": [[ 1, "asc" ]],
"processing": true,
"serverSide": true,
"deferLoading": 30000,
"ajax": {
url: location.protocol + '//' + location.hostname + '/ajax/products.php?action=list',
type: "POST"
},
"columns": [
{ "data": "image",
"orderable": false,
"width": "80px" },
{ "data": "product" },
{ "data": "action",
"orderable": false,
"width": "20px",
"sClass": "class",
}
]
});
Вот мой AJAX:
$req = $pdo->prepare('SELECT product_id, name FROM products');
if ($req->execute()) {
if ($req->rowCount()) {
$result['draw'] = 1;
$result['recordsTotal'] = $req->rowCount();
$result['recordsFiltered'] = 10;
$result['data'] = array();
$result['DT_RowId'][] = array();
while($row = $req->fetch()) {
if ($row['name']) { $name = $row['name']; } else { $name = "N/A"; }
$result['data'][] = array( "DT_RowId" => $row['product_id'],
"DT_RowClass" => 'myclass',
"image" => '<a href="' . HOSTNAME._("product").'/'.$row['product_id'] . '"><img src="' . HOSTNAME.'assets/img/products/' . $row['product_id'] . '.jpg" class="product_thumb"></a>',
"product" => '<a href="' . HOSTNAME._("product").'/'.$row['product_id'] . '">' . $name . '</a>',
"action" => "<a href=\"#\" class=\"button-delete\" id=\"" . $row['product_id'] . "\"><i class=\"fa fa-close fa-2x text-danger\"></i></a>"
);
}
}
}
$req->closeCursor();
Я уверен, что есть что-то я пропустил ... :-(
спасибо! –