默认情况下,DataTables中的Ajax调用通过在URL上添加伪造字段来避免缓存,例如http://yoursite.com/api/?_348522852542'
。我想禁用它。似乎ajax函数调用fnServerData
,其定义类似于此......
"fnServerData": function ( sUrl, aoData, fnCallback, oSettings ) {
oSettings.jqXHR = $.ajax( {
"url": sUrl,
....
"cache": false,
....
});
};
我希望"cache"
的值为true
而不是false
。我错过了什么吗?为什么这样硬编码?是进行此更改以在本地或通过提交补丁来编辑源的最佳方法吗?
答案 0 :(得分:1)
您可以覆盖fnServerData回调:http://datatables.net/usage/callbacks#fnServerData
答案 1 :(得分:0)
这实际上帮助我解决了我的问题,当已经缓存的数据(在redis中)被datatables(1.10.10)重新缓存时,这是我的代码(它也会刷新数据,因为它的缓存速度非常快):
<script type="text/javascript" charset="utf-8">
$(document).ready(function() {
var table = $('#issues-table').DataTable( {
processing : true,
ajax: {
url: '/jira',
dataSrc: 'issues',
cache: true
},
order: [ 0, 'desc' ],
fnRowCallback: function( nRow, aData, iDisplayIndex ) {
$('td:eq(0)', nRow).html('<a href="http://jira.com/browse/' + aData[0] + '" target="_blank">' +
aData[0] + '</a>');
return nRow;
},
} );
setInterval( function () {
table.ajax.reload( null, false ); // user paging is not reset on reload
}, 30000 );
} );
</script>