DataTable
Web サービスにアクセスして、セルの値をオフラインからオンライン (およびその逆) に更新しようとしています。
var $myTable = $("#my-table").dataTable();
var $myTableRows = $myTable.fnGetNodes();
for(var i=0; i<$myTableRows.length; i++) {
var $currentRowCount = i;
var $interval = $($myTableRows[i]).find("td:eq(9)").html();
var $timeout = $($myTableRows[i]).find("td:eq(10)").html();
var $dataINeedToPass = $($myTableRows[i]).find("td span:eq(4)").html();
setInterval(function() { updateStuffOnTheTable($interval, $timeout, $dataINeedToPass, i); }, 4000);
}
function updateStuffOnTheTable(interval, timeout, dataINeedToPass, row) {
var $stuff = "Offline";
var ajaxCall = $.ajax({
url : "https://localhost:8443/cxf/mywebservice/" + dataINeedToPass,
type : "GET",
dataType : 'text',
timeout: 2000
}).done(function(data) {
$stuff = "Online";
})
.fail(function(data) {
$stuff = "Offline";
})
.always(function(data) {
$myTable.fnUpdate($stuff, row, 2);
})
}
問題は、AJAX リクエストが 4000 ミリ秒ごとではなく 1 回しか実行されないことです。ここで何が欠けていますか?