我有一个包含通知的页面,我想每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
完成回调后重新初始化数据表:
$("#notificationsPlaceholder").load(location.href + " #notificationsPlaceholder>*",function(data){
loadNotificationsTable();
});
还要将其添加到初始化代码中 因为你想要替换表
https://legacy.datatables.net/ref#bDestroy
"bDestroy": true,
答案 1 :(得分:1)
如果您需要定期刷新表格,请使用:
$('#table_id').DataTable().ajax.reload();
将此代码与setTimeout()函数一起使用,以定期的时间间隔刷新数据表。