Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery DataTables强制浏览器缓存数据_Jquery_Datatables - Fatal编程技术网

Jquery DataTables强制浏览器缓存数据

Jquery DataTables强制浏览器缓存数据,jquery,datatables,Jquery,Datatables,情景: -文档加载函数执行aJax调用并返回JSON>working OK -DataTables使用aJax返回数据绘制一个表>正常工作 -Browser click event是否另一个aJax调用返回相同的JSON格式,但具有新的/更新的值>DataTables继续使用步骤1中接收到的JSON -当我在“网络”选项卡上查看返回数据时,它会显示正确的最新数据>,然而,console.log继续使用第一个aJax返回的数据集 -我在aJax调用中使用了“cache”:false,在HTML中使

情景: -文档加载函数执行aJax调用并返回JSON>working OK -DataTables使用aJax返回数据绘制一个表>正常工作 -Browser click event是否另一个aJax调用返回相同的JSON格式,但具有新的/更新的值>DataTables继续使用步骤1中接收到的JSON -当我在“网络”选项卡上查看返回数据时,它会显示正确的最新数据>,然而,console.log继续使用第一个aJax返回的数据集 -我在aJax调用中使用了“cache”:false,在HTML中使用了DataTables初始化,甚至还使用了metahttp 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){
$.ajax({
url:“http://xyz/yzx/zxy.php", 
数据:mydata,
类型:“POST”
数据类型:“json”
cache:false,
}).done(函数(rdata){
console.log(rdata);
$(“#我的表”).DataTable({
数据:rdata.visitors,
栏目:[
{数据:'全名'},
{数据:'公司'},
{数据:'访问'},
{数据:'电话'},
{数据:'签入'},
{数据:'签出'}
],
rowCallback:函数(行、数据、索引){
如果(数据['active']=1){
$('td:eq(5)”,第行).html(“立即签出”);
$(行).addClass(“活动访问者”).attr('unqid',data['id']);
}否则{
$('td:eq(5)”,第行).html(数据['checkOut']);
$(行).addClass('inactive-visitor').attr('unqid',data['id']);
}
},//结束行回调
订单:[[4,‘asc']],
摧毁:没错,
saveState:false,
缓存:false
});
});
}//结束myFunc
现在,当再次调用myFunc(inpData)时,doing console.log(rdata)继续显示旧数据。当我在“网络”选项卡中查找返回数据时,它具有更新的数据

会发生什么事

我终于修好了

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

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

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

是否销毁以前的datatable并添加新datatable?请尝试
url:http://xyz/yzx/zxy.php?v=“+new Date().getTime,
@madalin ivascu yes,因此在DataTables初始化@J Santosh中有“destroy”:true选项;尝试了您的建议,但不起作用当再次进行aJax调用时,有一个JSON属性“active”正在从1变为0,浏览器将继续控制台。将其记录为1,同时“network”选项卡将其显示为0有点晚,但
=
不是有效的运算符。它可以是
==
(等于)或
===
(等于且来自相同的数据类型)