Library

dataTables - 서버에서 데이터를 만들어서 보내기

Albert_Kong 2024. 11. 1. 12:55

수천 또는 수백만 개의 데이터 행을 처리할 때 DOM에서 데이터를 읽는 것이 너무 느리거나 다루기 힘든 경우가 있습니다.

이 문제를 해결하기 위해 DataTables의 서버 측 처리 기능은 서버 측의 데이터베이스 엔진이 모든 '무거운 작업'을 처리하고(결국 이 사용 사례에 고도로 최적화되어 있습니다!), 사용자의 웹 브라우저에서 해당 정보를 그리도록 하는 방법을 제공합니다. 따라서 수백만 개의 행으로 구성된 테이블을 쉽게 표시할 수 있습니다.

 

서버 측 처리를 사용할 때 DataTables는 페이지에서 정보를 그릴 때마다(예: 페이징, 주문, 검색 등) 서버에 Ajax 요청을 보냅니다.

DataTables는 서버가 필요한 처리를 수행할 수 있도록 여러 변수를 서버로 전송한 다음 DataTables에서 요구하는 형식으로 데이터를 반환합니다.

서버 측 처리는 serverSide 옵션을 사용하여 활성화하고 ajax를 사용하여 구성할 수 있습니다.

 

https://datatables.net/manual/server-side

 

Server-side processing

Server-side processing There are times when reading data from the DOM is simply too slow or unwieldy, particularly when dealing with many thousands or millions of data rows. To address this DataTables' server-side processing feature provides a method to le

datatables.net

 

나 같은 경우는 서버에서 빠르게 처리를 하기 위해 이 옵션을 사용했다.

 

dataTable의 데이터 처리는 두가지 방법이 있다.

 

1. 필터링, 페이징 및 정렬 계산이 모두 웹 브라우저에서 수행되는 클라이언트 측 처리


2. 필터링, 페이징 및 정렬 계산이 모두 서버에서 수행되는 서버 측 처리

 

 

 

+ processing 옵션 설명

서버 측 처리를 위해 테이블이 처리 중일 때(예: 정렬) '처리 중' 표시기 표시를 사용하거나 사용하지 않도록 설정합니다. 
이 기능은 항목 정렬에 상당한 시간이 걸릴 수 있는 대량의 데이터가 있는 테이블에 특히 유용합니다. 

클라이언트 측 처리에서는 검색이 실제로 동기식으로 수행되므로 처리 표시기가 표시되지 않습니다.

 

 

내용을 더 읽어보면 서버측에서 어떻게 던져줘야 하는지 설명이 존재한다.

 

 

여기서 기본인 data 객체를 포함한 recordsTotal, recordsFiltered 를 포함해 브라우저로 던져주면 된다.

 

recordsTotal, recordsFiltered 정보가 있어야 페이지네이션이 가능.