我在滚动模式下使用dataTable。我通过php中的ajax调用获取数据。我需要做的是初始化包含20行的表,然后在滚动到表格底部时加载更多行。
这是我的初始dataTable设置:
$(document).ready( function () {
var table = $('#example').DataTable({
scrollY: 200,
paging: false,
searching: false,
info: false,
stateSave: true
ajax: {
url: "scripts/some-php-file.php",
type: "POST"
});
});
以下是我发现看到dataTable滚动是否触及底部的内容:
$('.dataTables_scrollBody').scroll(function() {
if($(this).scrollTop() + $(this).innerHeight() >= $(this)[0].scrollHeight) {
// load more rows if they exist
});
我还需要能够每10秒刷新一次数据。当我这样做时,我需要能够记住滚动位置,以便它不会到达页面顶部。
以下是我发现的内容:
setInterval( function () {
table.ajax.reload( null, false );
}, 30000 );
我无法将所有碎片放在一起。
这样做的全部功能是,当页面加载时,它只会将前20行加载到dataTable中。当用户滚动到dataTable的底部时,如果它们存在,它将最多加载20行。这将一直重复,直到数据集结束。此外,dataTable需要每10秒刷新一次并保持滚动位置。