5

我在 webapp 上使用数据表作为我的网格。问题是,用户必须始终刷新页面才能从数据库中获取当前数据,有没有办法可以自动完成?因为多个应用程序写入同一个表,而 webapp 只是用于监控,但如果用户必须刷新页面才能获取当前数据,则它超出了目的。这是我的初始化代码:

  $('.{{datatable['class']}}').dataTable( {
                "sDom": 'T<"clear">lfrtip',
                "oTableTools": {
                    "sSwfPath": "includes/swf/copy_csv_xls_pdf.swf",                
                    "aButtons": [
                         { 
                             "sExtends":"copy",
                             "mColumns":[{{datatable['flds']}}]
                         },
                         {   
                             "sExtends":"csv",
                             "mColumns":[{{datatable['flds']}}]
                         },

                         {
                             "sExtends":"xls",
                             "mColumns":[{{datatable['flds']}}]
                         },                         
                         {
                            "sExtends": "pdf",
                            "mColumns":[{{datatable['flds']}}],
                            "sPdfOrientation": "landscape",
                            "sPdfMessage": "{{datatable['title']}}"
                         }
                    ]
                    },        
                "bProcessing": true,
                "bServerSide": true,
                "sAjaxSource": "{{datatable['source']}}",
                "aoColumns": [          
                        {% for column in 0..datatable['columns']-2 %}
                        null,
                        {% endfor %}
                        null
                ]

        });

每次数据源发生任何事情(更新/插入/删除)时,列表是否可以自我更新?我按照丹尼的建议实现了一个循环,

var int=self.setInterval(function(){oTable.fnDraw();},1000);

但问题是列表总是一个有趣的状态,见附图在此处输入图像描述

4

1 回答 1

2

您可能有一个 ajax 请求,该请求由一个间隔计时器在循环中发生,该计时器检查自页面上次接收到任何内容以来是否有新数据。您需要弄清楚可以使用什么来确定记录的数量或保存上次更新/添加/删除的日期时间的专用记录,如果日期时间较新,那么上次抓取数据的时间再次更新等. 在页面上,您将在 javascript var 中记录/更新上次数据更新的日期时间,以用于所有未来的检查。

于 2013-04-10T07:59:18.203 回答