首页 > 解决方案 > 用ajax和flask连续调用python函数

问题描述

我需要在 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 continuous for 5 seconds once

标签: javascriptpythonajaxflask

解决方案


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()在异步回调中被调用


推荐阅读