【问题标题】:How can I make only the data table auto refresh after every 2 minutes如何仅在每 2 分钟后自动刷新数据表
【发布时间】:2016-11-23 10:32:49
【问题描述】:

我在 2 分钟后自动刷新创建收件箱邮件,在数据表中显示新邮件显示。如何刷新我的数据表?

【问题讨论】:

  • Stack Overflow 不是我们为您解决作业的平台。请提供有关您的问题、代码位、任何错误堆栈以及您迄今为止的研究的更多详细信息,以便我们可以根据您迄今为止的发现为您提供最佳建议!

标签: html ruby-on-rails-4 datatables-1.10


【解决方案1】:

所以您正在使用服务器端处理。像这样的……

$(document).ready(function () {
   var table = $('#TableID').DataTable({
      "processing": true,
      "serverSide": true,
      //any other configuration options
      "ajax": "path/to/processor"
});

您可以强制它自动刷新,使表格的 ajax 参数每 120 秒重新加载一次:

setInterval(function () {
      table.ajax.reload();
  }, 120000);

【讨论】:

  • 请注意,对于短计时器(例如:0.5 秒),这可能会导致在旧计时器完成之前要求重新加载。我会添加一些检查,如下所示: let isReloading = false; setInterval( function () { if (isReloading == true) return; isReloading = true; table.ajax.reload( function() { isReloading = false; } ); }, 500 );
【解决方案2】:

考虑到您正在对源自 Ajax 的数据表使用服务器端处理,您需要做的就是每 2 分钟重绘一次表。

你可以使用Javascript的setInterval()函数

var oTable = $("#mytable").DataTable({
                  'serverSide': 'true'
             });

初始化完成后,使用setInterval() 重新绘制你想要的时间的表格。

setInterval(function(){
    oTable.draw();
}, 120000);

【讨论】:

    【解决方案3】:

    您还需要调用 DataTable 对象,只有 ajax.reload() 对我不起作用

    //Auto refresh Datatables on specified milliseconds
    setInterval(function(){
        $('#workitemgrid').DataTable().ajax.reload();
        $('#exceptionqueuegrid').DataTable().ajax.reload();
    }, 30000);
    

    【讨论】:

      猜你喜欢
      • 2019-02-28
      • 2014-03-12
      • 2013-11-17
      • 1970-01-01
      • 2014-11-02
      • 2011-08-28
      • 2022-06-14
      • 2022-12-18
      • 1970-01-01
      相关资源
      最近更新 更多