我在Web应用程序的服务器端模式下使用DataTables 1.10.15。
该应用程序在数据库中有大约240,000条记录。我已将每页选项的结果更改为如下(每页25,100,250,500,1000,2500,5000)设置为默认的250条记录:
$('#myTable').DataTable( {
// Ajax call etc ...
"processing": true,
"serverSide": true,
"lengthMenu": [ 25, 100, 250, 500, 1000, 2500, 5000 ],
"pageLength": 250,
});
由于制作ajax请求所需的时间,我想显示"处理"消息"processing": true
。所有这一切都是切换此<div>
的可见性:
<div id="myTable_processing" class="dataTables_processing panel panel-default" style="display: none;">Processing...</div>
然而,这种方式存在问题。在DataTables CSS文件中,我们有:
div.dataTables_processing {
position: absolute;
top: 50%;
left: 50%;
width: 200px;
margin-left: -100px;
margin-top: -26px;
text-align: center;
padding: 1em 0;
}
这对于大型结果集(例如500,1000,2500,5000条记录)永远不会有效,因为它从屏幕顶部显示50%。如果您有数千条记录的表格,它就在页面下方,用户永远不会看到它,除非它们碰巧向下滚动到相应的部分 - 这也会因显示的记录数量而有所不同,并且它们不会#39有时间这样做。
为了确保这种情况,我向lengthMenu
添加了一些选项,例如1, 2, 3, 4, 5
,如果浏览器中没有垂直滚动条,它确实有用 - 大概是因为50从顶部仍然可以看到%?
有更好/不同的方式来实现这个吗?
我在CSS中尝试了position: fixed;
,但它没有做得更好。