2017-09-29 4 views
0

관리자 패널 스크립트로 테이블 스트라이프 된 Datatables를 사용하고 있으며, 많은 양의 데이터를 mySQL 및 PHP에서 표시하려고하면 페이지를로드하는 데 많은 시간이 걸립니다. 다음은php 및 mysql이있는 데이터 테이블이 10000 개가 넘는 많은 데이터를 가지고 있습니다.

코드는 datatables로 사용하고 있습니다 :

<script> 

    'use strict'; var Site = window.Site; 

    $(document).ready(function($) { Site.run(); }); 

    (function() 
    { 
     $(document).ready(function() 
     { 
      var defaults = $.components.getDefaults("dataTable"); 

      var options = $.extend(true, {}, defaults, 
      { 
       "aoColumnDefs": 
       [{ 'bSortable': false, 'aTargets': [-1] }], 

       "iDisplayLength": 10, 

       "aLengthMenu": 
       [ 
        [5, 10, 25, 50, -1], 
        [5, 10, 25, 50, "All"] 
       ], 

       "sDom": '<"dt-panelmenu clearfix"Tfr>t<"dt-panelfooter clearfix"ip>', 
       "oTableTools": { "sSwfPath": "../assets/vendor/datatables-tabletools/swf/copy_csv_xls.swf" } 
      }); 

      $('#exampleTableTools').dataTable(options); 
     }); 
    })(); 

</script> 

어떻게 모든 레코드를로드하고 빠르게 같은로드 페이지에서 할 수 있습니다.

+1

Ajax를 사용해 보셨습니까? – Akintunde007

+0

아니요 PHP 클래스와 함수를 사용하고 있습니다. 같은 것이라고 생각합니까? –

+0

아니요. 동일하지 않습니다. Ajax는 빠릅니다. Google php datatables Ajax. 당신은 대답의 톤을 얻을거야 – Akintunde007

답변

1

많은 양의 데이터가 필요하다면 PHP에서 제한 및 페이지 매기기를 설정해야합니다. 데이터 테이블은 모든 데이터를 가져온 후에 제한되도록 설정됩니다. 큰 데이터를 가지고 있다면 PHP에서 페이지 매김을 설정하는 데 감사해야합니다.

+0

자동 페이지 매기기가 있지만 모든 데이터를 한 번로드하므로 페이지가 너무 느립니다. –

0

다른 사람들과 마찬가지로. 한 번에 1000 개의 항목을로드하면 페이지가 느려집니다. 빠른 속도에 대한

'bProcessing':true 

를 사용하여 서버 측 처리, 외부 .PHP 파일로 :

'bPaginate': true 

또한 데이터의 많은 양의 bProcessing을 활성화해야합니다 : 당신이 매김을 활성화 할 필요가 목적 : 추가 정보를 문서 밖으로

'bServerSide':true 
    'sAjaxSource': 'your_external_get_data.php' 

확인 : http://legacy.datatables.net/usage/features