0

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

如何才能做到这一点?

4

1 回答 1

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/

于 2013-05-27T17:36:45.997 回答