Skip to main content
 首页 » 编程设计

jquery之当数据库中的记录发生更改时,如何不断更新数据表、Websockets 或长轮询实现

2026年07月24日14lautakyan007

我正在使用数据表作为网络应用程序上的网格。问题是,用户必须始终刷新页面才能从数据库获取当前数据,有没有办法自动完成此操作?因为多个应用程序写入同一个表,而 Web 应用程序只是用于监控,但如果用户必须刷新页面才能获取当前数据,那就达不到目的了。 这是我的初始化代码:

  $('.{{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); 

但问题是列表总是一个有趣的状态,参见附图

请您参考如下方法:

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