ページ・ロード時に動的に作成されるhtml表内のユーザーのリスト。各行にはインラインボタンがあり、各ボタンにはonclick = "functionName(userId)"があり、以下の関数を呼び出します:クリックすると、ブートストラップモデルのポップアップが表示され、その後ajaxの呼び出しが開始されます。問題は、ユーザーがモデルを閉じた後にajax呼び出しを停止し、ユーザーが別の行/ユーザーをクリックして現在のユーザーIDを渡す場合です。なんらかの理由で、時にはajaxがコールを停止し、時々dontします。以前のuserIdは、指定された間隔でダブルコールまたはトリプルコールのいずれかに保存されています。あなたの洞察をいただきありがとうございます。SetTimeout javascript、予期しない実行を使用したAjax呼び出しの繰り返し
var timer = null;
function RTLS(id) {
$('#RTLSModal').modal('show');
window.clearTimeout(timer);
$('#RTLSModal').on('hidden.bs.modal',
function() {
window.clearTimeout(timer);
timer = 0;
$('#RTLSModal .modal-body').html("");
$('#RTLSModal').data('bs.modal', null);
});
$('#RTLSModal').on('shown.bs.modal',
function() {
GetRealTimeScans(id);
});
}
function GetRealTimeScans(id) {
var html = '';
$.ajax({
url: '/api/v1/computers/GetRealTimeKeys?computerId=' + id,
typr: "GET",
contentType: "application/json;charset=UTF-8",
dataType: "json",
success: function (scans) {
if (scans.length > 0) {
$.each(scans,
function (index, value) {
//create html
});
$('#RTLSModal .modal-body').html(html);
} else {
html += '<div class=""><h3 style="text-align: center;">No one around</h3></div>';
$('#RTLSModal .modal-body').html(html);
}
},
complete: function() {
timer = setTimeout('GetRealTimeScans('+id+')', 10000);
}
});
}
アクティブな場合は、おそらくAjax呼び出しを中止する必要があります。 – epascarello