jQuery datatable - 更新“正在处理..“消息在 x 秒后
jQuery datatable - update "Processing..." message after x seconds?
我正在使用带有Bootstrap v2的jQuery数据表。当页面首次加载时,它会显示"正在处理..."这很好。当我更改页面或排序时,它还会显示此消息 - 也很好。
大多数情况下,后端的数据库速度很快,"正在处理"消息仅在屏幕上显示一秒钟或更短的时间。
但是,在某些情况下,例如,如果他们正在对大量行进行搜索,则可能需要几秒钟才能完成此操作。
我想这样做,如果 x 秒后仍然显示处理消息,我会以某种方式更新它 - 例如更改样式以添加背景颜色:周围黄色,和/或将消息更改为"处理时间更长。请稍候..."。
我认为第一步是绑定到 Filter 事件。我能够做到这一点。但是我无法弄清楚如何绑定到表的初始加载,该表执行处理...并且可能需要一段时间,具体取决于查询。
同样,我认为这可能是一件相当普遍的事情,所以我想知道是否有人可以共享一段附加到必要事件的代码片段,并会自动找到处理div 并在 x 秒后即时更新它,然后清除它以便下次它执行处理......消息它再次开始,假设它会很快并且仅在 x 秒后更改。
提前感谢!
您可以尝试使用 fnPreDrawCallback 启动超时,然后使用 fnDrawCallback 清除超时(并重置消息状态)。
我在手机上输入了这个,所以请原谅任何错误:
$(document).ready(function() {
var extendedLoadingTimer,
setExtendedLoadingMessage = function(){
// Do the stuff to change the message
// Like adding a css class and changing the text
},
resetLoadingMessage = function(){
// Do stuff to reset the message back to it's starting state
// Like removing the css class and resetting the text
};
$('#your-table-id').dataTable({
// Add your other data table options here ...
"fnPreDrawCallback": function() {
// Start the timer
extendedLoadingTimer = setTimeout(function(){
// When the timer is done ( after 400 miliseconds )
// update the message
setExtendedLoadingMessage();
}, 400);
},
"fnDrawCallback": function() {
// Stop the timer from changing after its done ( although
// it might already be done at this point )
clearTimeout(extendedLoadingTimer);
// Whether the timer was done or not, always reset
// the message back to its original state
resetLoadingMessage();
}
});
});
相关文章:
- ng消息仅在触摸时显示错误,并在错误的初始显示上转换
- RadEditor 验证消息仅在回发后发送
- 点击按钮dons'它在IE9中不起作用,但没有错误消息(它在chrome中起作用)
- 在服务器上压缩JSON消息,在客户端解压缩
- 消息传递在 Chrome 19 中断开
- canDeactivate 方法中的消息框在 Firefox 25.0 中抛出错误
- ExtJS 6 访问消息属性在存储同步的回调
- Hubot 脚本仅在我直接向机器人发送消息时在 Slack 中有效
- 如何在收到新消息时在浏览器的标题栏中发出警报
- Chrome 扩展程序:无法让消息传递在后台脚本和内容脚本之间正常工作
- 错误消息显示在所有分区中
- 消息传递在chrome扩展中不起作用
- WebSocket onopen-消息只在某些时候发送
- php随机消息将在20秒内淡出到下一条随机消息
- 检索“;其他消息”;在facebook上使用fql
- PHP和AJAX消息框在用户滚动上滚动
- socket.io消息仍然在广播,即使客户已经离开了房间
- 给我错误消息但在输入字段后没有清除错误消息的代码
- 内容脚本和背景页面之间的消息传递在chrome扩展是不工作,因为它应该是
- Laravel验证器消息,在jQuery中迭代