Javascript 数据表重新加载

Javascript 数据表重新加载,javascript,html,datatables,Javascript,Html,Datatables,嗯,我正试图为这项工作做点什么,我需要一个用DataTables库制作的表不断更新,例如,每10秒更新一次 我面临着非常无聊的问题,我正在尝试重新加载API,如官方网站所述 我用这个: function AutoReload1() { var table = $('#OperationFix').DataTable({ ajax: "data.json" }); setInterval(function (

嗯,我正试图为这项工作做点什么,我需要一个用DataTables库制作的表不断更新,例如,每10秒更新一次

我面临着非常无聊的问题,我正在尝试重新加载API,如官方网站所述

我用这个:

    function AutoReload1()
    {
        var table = $('#OperationFix').DataTable({
            ajax: "data.json"
        });

        setInterval(function () {
            table.ajax.reload();
        }, 5000);

        //loadOrdersFix();
        //alert('Testing')

    }
然后它向我返回以下错误:

DataTables警告:表id=OperationFix-无法重新初始化DataTable。有关此错误的详细信息,请参阅


您的代码似乎很好

但您提到的错误发生在
AutoReload1()时在其已加载后以某种方式再次调用

要解决此问题,您需要添加
destroy:true
,或者查找多次调用
AutoReload1()
的原因

function AutoReload1()
{
    var table = $('#OperationFix').DataTable({
        ajax: "data.json",
        destroy: true
    });

    setInterval(function () {
        table.ajax.reload();
    }, 5000);

}
工作

编辑1:

根据您的建议,您已经定义了Datatable 2个位置,因此在这两个位置添加
destroy:true

 var table = $(OperationFixTableId).DataTable({
       dom: 'Bfrtip',
       pageLength: 1000,
       columns: columns,
       data: OperationFix,
       destroy: true
HTML:

我目前正在尝试这样做,但当我测试它时,我看到他试图用“data.json”加载我的DataTable,我希望他用银行中的数据加载它,因为我可以这样做,我的连接在这里:

函数GetOrdersFix(开始日期、结束日期、状态、类型、onSuccess、onError){ var uri=executionContext.settings.GetOrdersFix

var data = {
    startDate: new Date(startDate).toJSON(),
    endDate: new Date(endDate).toJSON()
};

if (status) { data.status = status; }

if (type) { data.type = type; }



console.info('Loading orders fix from ' + uri);

//Call to server API
$.ajax({
    type: 'GET',
    url: uri,
    data: data,
    success: function (responseData, status, jqXHR) {
        onSuccess(responseData);
    },
    error: function (jqXHR, status, errorThrown) {
        onError(status + ',' + errorThrown + ',' + jqXHR.responseText);
    }
});

}

这个问题被标记为C有什么特别的原因吗?虽然它是用javascript编写的,但我目前正在用MVC编写应用程序,我认为这将是一个需要添加的重要细节,如果我错了,我很抱歉。。。。您是否访问了该URL并阅读了错误文档?是的,它的扩展与解决方案有关,但我尝试了,什么都没有,根据文档,错误本身是由于不可能使调用表+1次,它只能启动1X Hello Fiddle,我测试了什么“destroy:true”现在更改的错误只表明他可以加载表并将结果带给我,这是因为当您使用“destroy:true”时,他会丢失参数,在我的情况下,这些参数将是开始日期和结束日期。我想知道你是否知道该怎么做,你是否能帮我解决这个恼人的错误已经有一段时间了,从官方网站上显示的情况来看,这似乎很容易解决,只需选择现有的表,讨论要加载的文件并重新加载即可。这个项目是我的工作,所以它的专业用途,它对我来说很重要,提前感谢:)为了得到帮助,你需要提供实际的代码,这是导致问题的原因。我在你的问题中没有看到任何开始日期和结束日期。请创建一个Fiddle和share链接示例。没关系,这对我来说很难,因为代码太大了,而且公司的,今天我不在了,周四我负责。为了帮助找出调用
AutoReload1()
多次的原因,您可以尝试放置
console.trace('此处的可选消息')
函数内部。这将为您提供一个在该点之前调用的函数列表。
   var OperationFixTableId = $('#OperationFix');  

    var refreshIntervalId = setInterval;

    function AutoReload1()
    {              

        var OperationFixTableId = $('#OperationFix').DataTable({
            ajax: 'data.json',
            destroy: true
        });

        setInterval(function () {
            OperationFixTableId.ajax.reload();
        }, 5000);

    }


    function AutoReload() {
        var checkbox = document.getElementById('myonoffswitch');


        if (checkbox.checked == true)
        {
            AutoReload1();
        }

        if (checkbox.checked == false)
        {
            clearInterval(refreshIntervalId);
        }
    }
var data = {
    startDate: new Date(startDate).toJSON(),
    endDate: new Date(endDate).toJSON()
};

if (status) { data.status = status; }

if (type) { data.type = type; }



console.info('Loading orders fix from ' + uri);

//Call to server API
$.ajax({
    type: 'GET',
    url: uri,
    data: data,
    success: function (responseData, status, jqXHR) {
        onSuccess(responseData);
    },
    error: function (jqXHR, status, errorThrown) {
        onError(status + ',' + errorThrown + ',' + jqXHR.responseText);
    }
});