首页 文章

DataTables强制浏览器缓存数据

提问于
浏览
0

场景: - 文档加载上的函数执行aJax调用并返回JSON>工作正常 - DataTables使用aJax返回数据绘制表>工作正常 - 浏览器单击事件执行另一个aJax调用返回相同的JSON格式但是使用new / updated values> DataTables继续使用在步骤1中收到的JSON - 当我在'Network'选项卡上查看返回数据时,它显示正确的最新数据>但是,console.log继续使用第一个aJax返回的数据集 - 我用过“cache”:在aJax调用中为false,DataTables初始化甚至是HTML中的http 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)会继续显示旧数据 . 当我在“网络”选项卡中查找返回数据时,它具有更新的数据 .

可能会发生什么?

1 回答

  • 0

    我终于修好了

    if(data['active'] = 1)
    

    被改为

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

    可能DataTables将数字转换为aJax返回的字符串

相关问题