0

DataTablesプラグインを使用してmysqlテーブルからデータを取得し、それらを表示しています。そのために、私はすべてのデータを取得するためにサーバー側の処理コードを使用しています。これまでのところ、正常に動作しています。現在、新しいレコードが挿入されているかどうかを毎分データベースでチェックしています。データベースに新しいレコードが挿入された場合、データテーブル関数を呼び出しています。当時、レコード全体をクリアし、新しく挿入されたレコードを含むレコードを表示して、ページ全体が読み込まれたように見せました。既存のデータをクリアせずに実行できますか?または、レコードをクリアせずに、新しく挿入されたレコードを既存のレコードに追加できますか?または、これをどのように処理できますか?

これが私のコードです

$('#example').dataTable({
                    "bProcessing": false,
                    "bServerSide": true,
                    "sPaginationType": "full_numbers",
                    "iDisplayLength":10,
                    "bDeferRender": true,
                    "bFilter": false,
                    "bSort": false,
                    "bInfo": true,
                    "sAjaxSource": #PHP_PATH#/json_data"
                   });
4

1 に答える 1

1

あなたが達成しようとしていることについては、SignalR について調査することもお勧めします - それは素晴らしいです!

bServerSideのためにProcessingを使用していますか?

ページが初めて生成されてクライアントに送信されると、データテーブルは当時の最新データでレンダリングされます。その後、後続のすべての ajax 呼び出しで、サーバーが新しいデータだけを送り返してきた場合は、成功/完了コールバックで以下のメソッドを呼び出すだけです。

function AddRow(row) {
    $('#example').dataTable().fnAddData([
        row[0],
        row[1],
        row[2]]);
}

$.ajax({
    //...
    success: function(data) {
        //assuming data = ["COL.1", "COL.2", "COL.3"]
        AddRow(data);
    }
    //...
});​
于 2012-12-17T10:26:24.090 に答える