@DunkanMaklaut
Студент

Можно ли ускорить загрузку таблицы?

я использую DataTables для довольно большой таблицы 1600 строк, и при загрузке, браузер показывает сначала все 1600 строк а потом только загружает ее с помощью DT в том виде в котором она должна быть(как на оф. сайте), и происходит это очень долго, можно ли ускорить это дело или хотя бы не показывать все 1600 строк до того как скрипт их загрузит? Код вывода:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ page pageEncoding="utf-8"%>
  html>
<head>
    <script src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
    <script src = "http://code.jquery.com/jquery-1.9.1.js"> </script>
    <link href="https://nightly.datatables.net/css/jquery.dataTables.css" rel="stylesheet" type="text/css" />
    <script src="https://nightly.datatables.net/js/jquery.dataTables.js"></script>
    <script type="text/javascript" >
        <%@include file= "/WEB-INF/js/dataTables.searchBuilder.js"%>
    </script>

    <link href="https://nightly.datatables.net/searchbuilder/css/searchBuilder.dataTables.css?_=a51bf91506bde26d764a44ddd25768db.css" rel="stylesheet" type="text/css" />

    <link href="https://nightly.datatables.net/searchbuilder/css/searchBuilder.dataTables.css?_=a51bf91506bde26d764a44ddd25768db.css" rel="stylesheet" type="text/css" />
    <title>Project team list</title>

</head>
<body>
<div class="container">

    <table id="KipTable">
        <thead>
        <tr><th> ID </th><th> Короткое название </th><th>Полное название</th><th>Статус</th><th> Код проекта </th><th> </th></tr>
        </thead>
        <tbody>
        <c:forEach var="kip" items="${kip}">
            <tr>
                <td><a href='<c:url value="/kip_edit?id=${kip.id}"/>'>${kip.id}</a></td>
                <td>${kip.shortName}</td>
                <td>${kip.fullName}</td>
                <td>${kip.status}</td>
                <td>${kip.code}</td>
                <td>
                    <form method="post" action='<c:url value="/kip_delete" />'  style="display:inline;">
                        <input type="hidden" name="id" value="${kip.id}">
                        <input type="submit"  value="Delete">
                    </form>
                </td>
            </tr>
        </c:forEach>
        </tbody>
    </table>
</div>
</body>
<script id="rendered-js">
    $(document).ready( function () {
        var table = $('#KipTable').DataTable({
            dom: 'Qltip',
            stateSave: true
        });
    });
</script>
</body>
</html>

на стороне сервера используется Java 6 + Tomcat 7
на сайте DT есть функция ServerSide , но я не понимаю что делать с ajax и как его использовать с сервером на Java, в примерах везде используется PHP который я не знаю
  • Вопрос задан
  • 218 просмотров
Решения вопроса 1
azerphoenix
@azerphoenix Куратор тега Java
Java Software Engineer
Ну для начала не отдавайте на фронт все 1600 строк для таблицы. Получается, что вы отдаете все строки с сервера, а далее DT средствами js разделяет их на страницы.
Вам нужно настроить ServerSide пагинацию и аяксом получать данные по 100-200 штук.
Вот, готовая либа для DataTables + Spring:
https://github.com/darrachequesne/spring-data-jpa-...
Вот, готовые либы для DataTables + Java
https://github.com/davioooh/datatables-pagination
https://github.com/eveoh/datatables-java
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы