【发布时间】:2017-10-31 15:29:48
【问题描述】:
我有一些表开始为空,DataTables 向 WebServer 请求数据。
加载它需要几分钟时间是可以的。 DataTables 显示默认加载消息。但我想添加一个计数器来通知加载运行了多长时间,而不是简单的加载文本或一些古怪的动画。
我在其文档中找不到方法。有可能吗?
更新:MonkeyZeus 的回答完美。这是我的最终代码:
// ...
,dataTablesLoading: function(e, settings, processing ){
setTimeout(function(){
var targetJs = e.target;
var target = $(targetJs);
var timerContainer = target.find('.dataTables_empty');
//tlog(targetJs,'targetJs');
//tlog(target,'target');
//tlog(timerContainer,'timerContainer');
if(processing){
var timer = 0;
var timerHandler = setInterval(function(){
timer++;
var hours = Math.floor(timer/3600);
var minutes = Math.floor((timer-(hours*60))/60);
var secs = timer-(hours*3600)-(minutes*60);
var timerText = hours+':'+minutes.lpad("0",2)+':'+secs.lpad("0",2);
tlog(timerText,'timerText');
//tlog(timerContainer,'timerContainer');
timerContainer.text("Loading... "+timerText);
},1000);
targetJs.setAttribute("data-loading-timer",timerHandler);
tlog(timerHandler,'timerHandler processing');
}else{
var timerHandler = parseInt(targetJs.getAttribute("data-loading-timer"));
tlog(timerHandler,'timerHandler not processing');
if(timerHandler>0)
clearInterval(timerHandler);
}
},1000);
}
// ...
$('#...')
.on( 'processing.dt', Framework.utils.dataTablesLoading )
.DataTable({...})
【问题讨论】:
-
你永远无法做到这一点(我猜你会想到一种进度条),除非你有一个与服务器的连接,它可以返回状态、行数等。但是一个时钟显示经过的时间会很容易。
-
Tnx 回复。不需要进度条 ou % 已完成。我只想要一个时分秒计数器来知道加载运行了多长时间。
标签: javascript jquery ajax datatable datatables