레코드를 표시하기 위해 jquery 데이터 테이블을 사용하고 있습니다. 데이터베이스에서 약 12000 개의 레코드를 가져 와서 html 테이블에 추가 한 다음 jQuery 데이터 테이블로 변환합니다.데이터 로딩
데이터 테이블로 변환하는 데 오랜 시간이 걸립니다. 나는 약 15 분을 기다렸다. 그러나 아직도 테이블은로드되지 않는다.
어떻게 해결할 수 있습니까?
레코드를 표시하기 위해 jquery 데이터 테이블을 사용하고 있습니다. 데이터베이스에서 약 12000 개의 레코드를 가져 와서 html 테이블에 추가 한 다음 jQuery 데이터 테이블로 변환합니다.데이터 로딩
데이터 테이블로 변환하는 데 오랜 시간이 걸립니다. 나는 약 15 분을 기다렸다. 그러나 아직도 테이블은로드되지 않는다.
어떻게 해결할 수 있습니까?
pagination
을 사용하고 동시에 한 번에 기록을 표시하지 않으려면 http://datatables.net/plug-ins/pagination을 참조하십시오. 한 번에 12000 개의 레코드를 표시하는 경우이 방법을 사용하면 좋은 사용자 환경을 제공 할 수 없습니다. 아약스와 페이지 매김을 사용하여 각 페이지에 대한 데이터를로드하십시오.
이 시도 ..
<script type="text/javascript" src="jquery.dataTables.js"></script>
<script type="text/javascript" src="dataTables.scrollingPagination.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$('#example').dataTable({
"sPaginationType": "scrolling",
"bProcessing": true
});
});
</script>
"sPaginationType"을 사용하고 있습니다 : "full_numbers".. 이것은 페이지 매김의 유형 만 다르지만 데이터를로드하는 시간은 다릅니다 – renuka
을 지연하는 주된 이유는 12000 개 기록에 해당 페이지에 표시하려는 HTML 요소의 엄청난 양이며, 유일한 해결책은 같은 것을 줄이는 것입니다 가능한 한 최대.
는, HTML에서 레코드를 배치 JSON을 통해 페이지에 보내지 마십시오
<script>
또는 아약스를 통해 또는 다른로드 할 수 있습니다 ...제한을 기록 . 첫 번째 페이지 활성화 bPaginate: true
페이지 당 두 번째 세트 레코드 iDisplayLength: 25
yourDataTable.fnAddData(data)
을 사용하여 데이터 세트를로드하십시오.
이것은 오래되었지만 유용합니다 ... 다음은 긴로드 데이터 용로드 GIF를 표시하는 데 사용됩니다. 페이지 매김과 함께 사용하십시오.
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js" type="text/javascript"></script>
<style>
#dvLoading
{
background:#000 url(http://mfgweb.binney.com/manuf/all_data
/img/loader2.gif) no-repeat center center;
height: 100px;
width: 100px;
position: fixed;
z-index: 1000;
left: 50%;
top: 50%;
margin: -25px 0 0 -25px;
}
</style>
<script>
$(window).load(function(){
$('#dvLoading').fadeOut(500);
});
</script>
<div id="dvLoading"></div>
두 iterations- 하나를 반복하고 HTML의 내용을로드하고, 다른 하나는 그것을에서 데이터 테이블을 만들기 위해 할 수있을 것 같은로드 시간을 복용. 대신 직접 같이 파라미터를 이용하여 서버로부터 데이터 테이블을로드 :
VAR의 aPublicationElements = 'jsonParameter1', 'jsonParameter2'
여기"sAjaxSource": '#yourServerCallHereWhichReturnsJSON#', "fnServerData": fnServerObjectToArray(aPublicationElements),
"aPublicationElements는"이런 JSON 요소를 포함하는 가변 , 'jsonParameter3', 'jsonParameter4']; 이 같은
그리고 매개 변수 내 그 데이터를 렌더링 :이 도움이
fnServerObjectToArray = function (aElements){
return function (sSource, aoData, fnCallback) {
$.ajax({
"dataType": 'json',
"type": "POST",
"url": sSource,
"data": aoData,
"success": function (json) {
var a = [];
for (var i=0, iLen=json.length ; i<iLen ; i++) {
var inner = [];
for (var j=0, jLen=aElements.length ; j<jLen ; j++) {
inner.push(json[i][aElements[j]]);
}
a.push(inner);
}
json.aaData = a;
fnCallback(json);
}
});
}
};
희망 :
"aoColumns": [
{"sTitle":"Title1",
"render": function(data, type, oObj) {
return oObj[0];
}
},
{"sTitle":"Title2",
"render": function(data, type, oObj) {
return oObj[1];
}
},
{"sTitle":"Title3",
"render": function(data, type, oObj) {
return oObj[2];
}
},
{"sTitle":"Title4",
"render": function(data, type, oObj){
return oObj[3];
}
}
}
],
기능 "fnServerObjectToArray는"배열에 서버 개체를 변환하기 위해이 같은 것입니다.
신뢰 인덱싱은 쿼리에서 사용하는 키 열에서 사용할 수 있습니다. 또한 HTML에 결과를 추가하고 수 DataTable 변환에도 불구하고, I 행 같은 다수 [서버 측 처리] 들어 ... 다음
$('#table_id').DataTable({ ajax: { url: url_to_data, dataSrc : '',
contentType: "application/json", type: "POST", data : function(d) { return JSON.stringify({param1:param1_val,param2:param2_val}); }, }, "pageLength":30, "processing": true, "serverSide": true, //server side processing for larger datasets columns: [ { sTitle : 'col_1', data: 'col_1_field'}, { sTitle: 'col_2', data : 'col_2_field'}, ] });
이 데이터 테이블 서버 측 사용해 Follow this link
안녕하세요! 귀하의 답변을 주셔서 감사합니다, 그것은 op에 유용 할 수 있지만, 링크는 시간이 초과되는 경향이 있습니다 .... pls 복사 - 붙여 넣기를 고려 datatable serverside를 사용하는 이유는 좋은 생각입니다 (또는 당신은 자신의 단어로 넣을 수 있습니다 게다가). 감사. – lrnzcig
큰 데이터베이스의 경우이 방법이 유용 할 것입니다. 처리 중 데이터베이스에서 모든 데이터를 검색하지 않습니다. 기타 https://datatables.net/examples/data_sources/server_side.html –
조언 할 (http://datatables.net/usage/server-side)이 더 좋은 옵션입니다. 페이지 매김 만이 큰 차이를 내지 않을 것입니다. – anu