【问题标题】:Call python function with ajax and flask continously用ajax和flask连续调用python函数
【发布时间】:2019-09-19 08:00:54
【问题描述】:

我需要在 python 中使用 ajax 连续调用 flask 函数。为此,我在 html 文件中有以下脚本。

<script  >
 var ajaxFUN = function () {
   $.ajax({
     url: '/toAjax',
     dataType: 'json',
     success: function (data) {
       console.log('get info');
       $('#data').html(data['data']);
     }
   });
 }
 setTimeout(ajaxFUN, 1);
</script>

这里是python代码

@app.route('/toAjax')
def ajaxTo():

    print("AJAX WAS HERE")
    data= reader.getToAjax()

    info = {
        "data": data

    }
    return jsonify(info)

我需要在 python 中连续调用 /toAjax 标头路由,而无需点击任何按钮或任何类型的方法。

但该实现只打印一次 AJAX WAS HERE。缺少的部分在哪里?我该如何解决?

这是我看过的类似问题: setTimeout() and setting parameters how to make ajax calls continuously for 5 seconds once

【问题讨论】:

  • setTimeout(ajaxFUN, 1); 调用它一次 - 我不会使用间隔为 1 的 setInterval,那太荒谬了 - 提示:在 $('#data').html(data['data']); 行之后添加 ajaxFUN() 以再次调用该函数一旦上一个请求完成

标签: javascript python ajax flask


【解决方案1】:

setTimeout 只触发一次(除非取消)

您可以使用setInterval,但这可能会以您用于setTimeout 的速度淹没您的服务器

我会推荐以下内容

 var ajaxFUN = function () {
   $.ajax({
     url: '/toAjax',
     dataType: 'json',
     success: function (data) {
       console.log('get info');
       $('#data').html(data['data']);
       ajaxFUN(); // this calls the function again
     }
   });
 }
 ajaxFUN();

如果您担心,没有“递归”,因为 ajaxFUN() 在异步回调中被调用

【讨论】:

  • 非常感谢它成功了。但我有疑问,使用这种代码是否适合应用程序?
  • 取决于你所说的“这种代码”是什么意思——你的意思是“做你想做的代码”吗?
  • 是的,正是我想要的代码,因为我是这个领域的新手,stackoverflow 只是我的指导方针。感谢您的贡献。因此我不确定它是否可以
  • @GhostDede - 好吧,这可能不“合适”的唯一原因是服务器无法处理不断的请求
猜你喜欢
  • 2023-03-09
  • 1970-01-01
  • 2016-05-29
  • 2015-09-03
  • 1970-01-01
  • 2021-10-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多