Отображение данных из базы данных в таблице, по одной строке/объекту за раз с помощью Ajax python django
Я работаю над проектом Django, в котором я отображаю список данных. Когда список слишком длинный, страница загружается дольше из-за количества данных, которые отображаются в списке.
Вместо того, чтобы в цикле Django for сначала получить все данные, а затем отобразить страницу, я думаю сначала отобразить страницу, а затем загрузить все данные из базы данных через ajax в фоновом режиме.
Для этого я думал сначала отобразить весь шаблон без данных объектов, чтобы быстро загрузить страницу, а затем использовать вызов Ajax для получения данных с помощью функции представления, по одному объекту за раз.
Возможно ли это и как я могу это сделать?
Мой datalist.py:
Мой шаблон Datalist (list.html):
{% if data %}
<table id="myTable1" class="table table-hover">
<thead id="header">
<tr class="mycol__">
<th class="acol1"><a href="#"><i class="fa fa-sync fa-lg"></i> </a></th>
<th class="col2">Field 1 </th>
<th class="col3">Field 2</th>
<th class="col4">Field 3</th>
<th class="col5">Field 4</th>
<th class="col6">Field 5</th>
<th class="col7">Field 6</th>
<th class="col9">Field 7</th>
</tr>
</thead>
<tbody id="tbody">
<!-- HERE IS WHERE THE AJAX SHOULD DISPLAY THE OBJECTS ONE ROW AT A TIME -->
</tbody>
</table>
{% endif %}
Мой шаблон частичного тела таблицы (list_table_body.html):
<tr>
<td class="col2">{{ d.protocolid }}</a></td>
<td class="col4">{{ d.year }}</td>
<td class="col5">{{ d.pcreated }}</td>
<td class="col6">{{ d.subject }}</td>
<td class="col7">{{ d.psender|default_if_none:"< Me >" }}</td>
</tr>
Вы посмотрели на jsGrid? Он поставляется с некоторыми "плюсами", такими как пагинация и т.д. "из коробки". Я использовал это решение вместе с Django REST Framework для достижения аналогичной цели.