2017-05-15 33 views
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)會繼續顯示舊數據。當我在「網絡」選項卡中查找返回數據時,它具有更新的數據。

怎麼回事?

+0

你破壞了以前的數據表,並添加新的DataTable? – madalinivascu

+1

試試'url:「http://xyz/yzx/zxy.php?v =」+ new Date()。getTime,' –

+0

@madalin ivascu yes,因此DataTables初始化中的「destroy」:true選項 @ J Santosh;嘗試了你的建議,沒有工作 有一個JSON屬性「活動」,當再次進行aJax調用時,從1變爲0,瀏覽器繼續console.log它爲1,而「網絡」選項卡顯示爲0 –

回答

0

我終於固定它

if(data['active'] = 1) 

改爲投數AJAX的字符串

if(data['active'] == 1) 

可能的DataTable返回