当sServerSide为true时,如何实时向DataTable添加行

时间:2013-05-27 04:59:20

标签: datatables

我有一个DataServer,sServerSide选项设置为true,因此它会按预期从服务器获取数据。我想动态地将新行添加到表中(使用WebSockets实时) - 我需要一种方法来直接修改从上一次AJAX调用缓存的数据,这样即使我在表上切换页面,新添加的实时行也将当我回到第一页时仍然在那里。

如何做到这一点?

1 个答案:

答案 0 :(得分:0)

应将.ajax调用修改为cache = false

您必须覆盖fnServerData http://datatables.net/ref#fnServerData

// POST data to server
$(document).ready( function() {
  $('#example').dataTable( {
    "bProcessing": true,
    "bServerSide": true,
    "sAjaxSource": "xhr.php",
    "fnServerData": function ( sSource, aoData, fnCallback, oSettings ) {
      oSettings.jqXHR = $.ajax( {
        "dataType": 'json',
        "type": "POST",
        "url": sSource,
        "data": aoData,
        "cache": false, //set to false so there is no caching
        "success": fnCallback
      } );
    }
  } );
} );

刷新后,新数据就会出现。
参考: http://api.jquery.com/jQuery.ajax/