如何在ajax脚本中实现setinterval



当页面使用ajax加载时,我正在填充一个html表,ajax从json文件中获取数据,它运行良好:

$(document).ready(function() {
$('#mytable').DataTable({
"order": [
[0, "desc"]
],
"ajax": "data.json",
"deferRender": true,
rowReorder: {
selector: 'td:nth-child(2)'
},
responsive: true,
columnDefs: [{
responsivePriority: 2,
targets: 0
},
{
responsivePriority: 10001,
targets: 2
},
{
responsivePriority: 1,
targets: -1
}
]
});
});

我想使用setinterval((每隔5秒重新加载一次表,我已经尝试添加:

mytable();
setInterval(mytable, 30000);

在脚本的底部,尽管这不起作用,但我认为我需要使用其他东西,而不是"mytable",但我不确定我需要使用什么。

我该怎么解决这个问题?

您没有名为mytable函数,您有一个ID为mytableHTML元素。您在AJAX调用中使用了一个匿名函数。但是,如果您提取该函数并将其更改为函数声明,那么您的方法将起作用。

$(document).ready(function(){
fillTable();                  // Run the function
setInterval(fillTable, 5000); // Then run it every 5 seconds after that
});
// Create a function declaration so you can refer to
// to the function by name later.
function fillTable(){
$('#mytable').DataTable({
"order": [
[0, "desc"]
],
"ajax": "data.json",
"deferRender": true,
rowReorder: {
selector: 'td:nth-child(2)'
},
responsive: true,
columnDefs: [{
responsivePriority: 2,
targets: 0
},
{
responsivePriority: 10001,
targets: 2
},
{
responsivePriority: 1,
targets: -1
}
]
});
}

最新更新