ind*_*ago 5 jquery datatables long-polling websocket phpwebsocket
我在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",
"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
]
});
Run Code Online (Sandbox Code Playgroud)
有没有一种方法,每当数据源发生任何事情(UPDATE/INSERT/DELETE)时,列表可以自行更新?我已经实现了Danny建议的循环,
var int=self.setInterval(function(){oTable.fnDraw();},1000);
Run Code Online (Sandbox Code Playgroud)
但问题是列表总是一个有趣的状态,看到附着的图像
您可以通过间隔计时器在循环中发生一个 ajax 请求,该计时器检查自页面上次接收到任何内容以来是否有新数据。您需要弄清楚可以使用什么来确定记录数量或保存上次更新/添加/删除的日期时间的专用记录,以及如果日期时间较新,则上次获取数据时再次更新等. 在该页面上,您可以在 javascript var 中记录/更新上次数据更新的日期时间,以便在以后的所有检查中使用。
| 归档时间: |
|
| 查看次数: |
1854 次 |
| 最近记录: |