【发布时间】:2019-01-23 03:16:42
【问题描述】:
这个问题可能会重复,但我需要一些帮助来修复代码。
场景:点击提交按钮后,ajax 会将表单数据发送到服务器。并根据表单数据(变量和更新速度)进行轮询以获取响应数据。
当前瓶颈:由于速度和变量是全局声明的,正确的响应只会在第一次单击并完成提交时显示。否则对于 doPoll 的 setTimeout 轮询,由于没有捕获表单数据,它将显示 null 值。
期望结果:一旦用户提交点击按钮,根据用户的更新速度值定期拉取数据,并将所有响应保存在键值数组中。响应将用于绘制 Chart.js。
任何建议和感谢。
代码:
$('#submit-button').click(function(e){
var speed = $('#update-speed-input').val();
var variables = $('#variables-select-input').val();
function doPoll(speed,variables){
$.post("{{ route('getFilterUnitData') }}", {
speed: speed,
variables: variables,
}, function(response) {
console.log(response);
setTimeout(doPoll,speed);
});
}
$.ajax({
url: "{{ route('getFilterUnitData') }}",
method: 'post',
data: {
speed: speed,
variables: variables
}
,
success: function(response){
console.log(count(response));
},
error: function(result) {
console.log(result);
},
complete: setTimeout(doPoll(speed,variables), speed)
});
});
【问题讨论】:
标签: javascript jquery ajax polling