2016-07-28 2 views
0

10 초마다 새로 고침하려는 알림이있는 페이지가 있지만 전체 페이지를 다시로드하지 않고 알림이 포함 된 div 만 다시로드하려고합니다. 알림 자체는 페이지가로드 될 때 초기화되는 데이터 테이블에 있지만 div를 다시로드 할 때 데이터 테이블을 다시 초기화 할 수 없습니다. div는 정상적으로 재로드되지만 정상적인 테이블입니다. 여기 내 코드는 다음과 같습니다.데이터 테이블을 어떻게 다시 초기화합니까?

$(document).ready(function() { 
    loadNotificationsTable(); 
}); 

setInterval(reloadNotificationsTable, 10000); 

function reloadNotificationsTable() { 
    $('#NotificationsTable').dataTable().fnDestroy(); 

    $("#notificationsPlaceholder").load(location.href + " #notificationsPlaceholder>*", ""); 

    $("#notificationsPlaceholder").ready(function() { 

     loadNotificationsTable(); 
    }); 
}; 

function loadNotificationsTable() { 
    $('#NotificationsTable').dataTable({ 
     ajax: "data.json", 
     "bLengthChange": false, 
     'iDisplayLength': 1000, 
     "bSort": false, 
     "bFilter": false, 
     "sDom": 'ft<"bottom"ilp>', 
     "bDestroy": false, 
     "bPaginate": false, 
     "bInfo":false 
    }); 
}; 

아무도 도와 드릴 수 없습니까?

+0

콜백에서로드가 완료된 후 다시 초기화하려는 경우 –

답변

1

시도 load 후 데이터 테이블은 콜백 완료 재 초기화 : 당신이 테이블

https://legacy.datatables.net/ref#bDestroy

"bDestroy": true, 
을 대체 할 때문에

$("#notificationsPlaceholder").load(location.href + " #notificationsPlaceholder>*",function(data){ 
    loadNotificationsTable(); 
}); 

는 또한 초기화 코드 이 추가

+0

완벽하게 작동합니다. 감사합니다. – necrofish666

+0

죄송합니다. 정신이 산만하고 잊어 버렸습니다. 다시 한번 감사드립니다. – necrofish666

1

일정한 간격으로 테이블을 새로 고침해야하는 경우 다음을 사용하십시오.

$('#table_id').DataTable().ajax.reload(); 

이 코드를 setTimeout() 함수와 함께 사용하면 일정한 간격으로 데이터 테이블을 새로 고칠 수 있습니다.

관련 문제