微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

jquery – 如何在数据库,websockets或长轮询实现中更改记录时不断更新数据表

我在webapp上使用datatables作为我的网格.问题是,用户必须始终刷新页面以从数据库获取当前数据,有没有办法可以自动完成?因为有几个应用程序写入同一个表,而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",{
                             "sExtends":"xls",{
                            "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
                ]

        });

有没有一种方法,每当数据源发生任何事情(UPDATE / INSERT / DELETE)时,列表可以自行更新?
我已经实现了Danny建议的循环,

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

但问题是列表总是一个有趣的状态,看到附着的图像

解决方法

您可以通过间隔计时器在循环中发生ajax请求,该计时器检查自页面上次收到任何内容以来是否有新数据.您需要弄清楚您可以使用哪些来确定记录数量或保存上次更新/添加/删除的日期时间的专用记录,以及日期时间是否更新,然后上次抓取数据时再次更新等等在页面上,您将在javascript var中记录/更新上次数据更新的日期时间,以便在将来的所有检查中使用.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐