2013-10-07 2 views
2

은 : 10 개 이상의 기록이있는 경우JQuery와 datatables 둔화 데이터 표시

<script type="text/javascript" charset="utf-8"> 
    $(document).ready(function(){ 
     $('table.display').dataTable({ 
      "bJQueryUI": true, 
      "sPaginationType": "two_button", 
      "aaSorting":[[2, "desc"]], 
      "bRetrieve": true, 
       "iDisplayLength": 10, // 10 records will be displayed by default 
       "sScrollY": "250px", 
       "sDom": '<"H"Tfr>t<"F"ip>', 
       "oTableTools": { 
        "sRowSelect": "multi", 
        "aButtons": [ 
         "copy", 
         { 
          "sExtends": "csv", 
          "sTitle": "data" 
         }      
        ] 
       } 
     }); 
    }) 
</script> 

, 다음 10 개 개의 레코드로 이동하는 것이 가능할 것이다 버튼을 사용하여.

내 동료 중 한 명이 내게 엄청난 프로젝트가있을 경우 페이지가 너무 느려질 수 있다고 말한 것이 문제입니다. 10 개의 레코드를 표시하도록 선택하면 페이지가 느려지지 않으므로 확실하지 않습니다. 내가 맞습니까?

Bests

+1

오른쪽하고 있습니다 – Nes

답변

1

10 개 이상의 기록이있는 경우,이 버튼을 사용하여 다음 10 개 개의 레코드로 이동할 수있을 것인가? 예, 물론입니다.

Datatables는 2 가지 방법으로 작동 :

  1. 클라이언트 측, 그것은 모든 데이터가 완전히 다운로드 (: 페이지 당 10 개 개의 레코드를 자동으로 데이터 테이블, 전에서) 페이지 된 것을 의미합니다. 이렇게하면 페이지의 용량이 많을 경우 속도가 느려집니다.
  2. 서버 측에서 요청한 데이터 만 다운로드 할 수 있으므로 다음/이전 페이지마다 서버에 요청합니다. 이렇게하면 데이터를 수동으로 페이징하는 서버 측 코드가 있어야합니다 (당연히 데이터 테이블의 요청과 호환 가능해야 함).
+0

이것은 매우 유익하지만, 제 동료는 옳았습니다. @Somy A는 무엇을 제안합니까? – Anibel

+0

그것은 당신의 필요에 따라, 당신은 거대한 데이터 (아마도 수천 행 데이터)를 가지고 있기 때문에, 나는 서버 측 프로세싱을 선호한다. MySQL 또는 다른 데이터베이스 엔진은 레코드 기술을 정렬 및 제한하는 데있어보다 효율적이고 효율적입니다. 하지만 당신은 단지 (수백) 데이터가 제한된 경우, 나는 클라이언트 측 처리를 사용하는 것으로 충분하다고 생각합니다.이 경우 서버 측 처리를 코딩 할 필요가 없습니다. 서버 측 처리에서이 페이지를 참조하십시오. http://datatables.net/examples/data_sources/server_side.html –

1

here을 살펴보십시오.

서버 측 처리를 원하시면 here을 클릭하십시오.

데이터를 DataTable로 가져 오는 데는 여러 가지 방법이 있으며 대용량 데이터베이스로 작업하는 경우 DataTables에서 제공하는 서버 측 옵션을 사용하는 것이 좋습니다. 기본적으로 DataTables가 수행하는 페이징, 필터링, 정렬 등 모든 작업은 서버 (또는 다른 데이터 소스, 예를 들어 Google Gears 또는 Adobe Air)로 전달 될 수 있으며 DataTables는 이벤트 및 디스플레이 모듈 일뿐입니다.

+0

이러한 링크가 질문에 대답 할 수는 있지만 링크 전용 답변은 피해야합니다. – pinckerman