0
場景: - 在文件加載功能確實AJAX調用和返回JSON>工作正常 - 數據表使用AJAX返回數據繪製表格>工作正常 - 瀏覽器點擊事件呢另一個Ajax調用返回相同的JSON格式,但具有新的/更新的值> DataTables繼續使用步驟1中收到的JSON - 當我在'Network'選項卡上查看返回數據時,它顯示正確的最新數據>但是,console.log繼續使用第一個Ajax返回的數據集 - 我在HTML中調用了「cache」:false,在HTML中使用了DataTables初始化,甚至使用meta http-equiv =「cache-control」content =「no-cache」/>數據表迫使瀏覽器緩存數據
function myFunc(inpData) {
$.ajax({
url: "http://xyz/yzx/zxy.php",
data: mydata,
type: 'POST'
dataType: 'json'
cache: false,
}).done(function(rdata) {
console.log(rdata);
$('#my-table').DataTable({
data: rdata.visitors,
columns: [
{data: 'fullName'},
{data: 'company'},
{data: 'visiting'},
{data: 'phone'},
{data: 'checkIn'},
{data: 'checkOut'}
],
rowCallback: function(row,data,index) {
if(data['active'] = 1) {
$('td:eq(5)', row).html("<button type='button' class='btn btn-default chk-out-btn'>Check Out Now</button>");
$(row).addClass("active-visitor").attr('unqid',data['id']);
} else {
$('td:eq(5)', row).html(data['checkOut']);
$(row).addClass('inactive-visitor').attr('unqid',data['id']);
}
}, // end rowCallback
order: [[4, 'asc']],
destroy: true,
saveState: false,
cache: false
});
});
} //end myFunc
現在,當再次調用myFunc(inpData)時,執行console.log(rdata)會繼續顯示舊數據。當我在「網絡」選項卡中查找返回數據時,它具有更新的數據。
怎麼回事?
你破壞了以前的數據表,並添加新的DataTable? – madalinivascu
試試'url:「http://xyz/yzx/zxy.php?v =」+ new Date()。getTime,' –
@madalin ivascu yes,因此DataTables初始化中的「destroy」:true選項 @ J Santosh;嘗試了你的建議,沒有工作 有一個JSON屬性「活動」,當再次進行aJax調用時,從1變爲0,瀏覽器繼續console.log它爲1,而「網絡」選項卡顯示爲0 –