【问题标题】:AJAX periodical polling data after submit button is clicked单击提交按钮后的 AJAX 定期轮询数据
【发布时间】: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


    【解决方案1】:

    您是否尝试将值分配给“窗口”对象?喜欢window.speed和window.variables

    速度和变量在函数范围内而不是全局范围内。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-06-27
      • 1970-01-01
      • 2017-12-31
      • 1970-01-01
      • 1970-01-01
      • 2017-07-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多