使用新的API刷新多个数据表

Refresh Multiple DataTables using new API

本文关键字:数据表 刷新 API      更新时间:2023-09-26

在花时间阅读了新的DataTable 1.10.2 API之后,我觉得我现在越来越好了。到目前为止,我已经将200多行代码减少到了不到100行,并且做得更好。现在,当数据发生变化时,数据表无法刷新,这让我很头疼。下面的代码只刷新.getJSON函数,但刷新浏览器中两个表上未刷新的数据:

        $(document).ready(function (){
            var alertTable = $('#alert-table').DataTable({
                "columns": [
                    { "data": "host" },
                    { "data": "description" },
                    { "data": "value", "visible": false }
                ],
            });
            var errorTable = $('#error-table').DataTable({
                "columns": [
                    { "data": "host" },
                    { "data": "description" }
                ],
            });

            setInterval (function(){
                $.getJSON("data/json_data.txt", function (pcheckdata){
                    alertTable.clear();
                    alertTable.rows.add(pcheckdata.alerts).draw();
                    alertTable.columns.adjust().draw();
                    errorTable.clear();
                    errorTable.rows.add(pcheckdata.errors).draw();
                    errorTable.columns.adjust().draw();
                });
            }, 1000);
        });

这是我在检查firefox控制台时看到的:

GET data/json_data.txt 200 OK 10ms

我真傻,我刚刚注意到我的错误,忘记在.clear()之后添加.draw()

                alertTable.clear().draw();
                alertTable.rows.add(pcheckdata.alerts).draw();
                alertTable.columns.adjust().draw();
                errorTable.clear().draw();
                errorTable.rows.add(pcheckdata.errors).draw();
                errorTable.columns.adjust().draw();