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