单击提交按钮后的 AJAX 定期轮询数据
Posted
技术标签:
【中文标题】单击提交按钮后的 AJAX 定期轮询数据【英文标题】:AJAX periodical polling data after submit button is clicked 【发布时间】: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)
);
);
【问题讨论】:
【参考方案1】:您是否尝试将值分配给“窗口”对象?喜欢window.speed和window.variables
速度和变量在函数范围内而不是全局范围内。
【讨论】:
以上是关于单击提交按钮后的 AJAX 定期轮询数据的主要内容,如果未能解决你的问题,请参考以下文章
如何通过包含表单数据但不单击提交按钮的 ajax 将视图模型发送到控制器