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