首页 > 解决方案 > 每 x 分钟发送一次 api 请求并使用状态更新上下文

问题描述

我正在尝试创建一个网站,用户可以在其中单击按钮启动任务,该任务将每 x 秒/分钟发送一个 api 请求。Api 请求获取报价列表作为响应,任务将检查 api 请求是否与以前相同。

如果是,那么我想在我的页面上显示状态:“未找到报价,仍在搜索”,如果 api 响应不同,则状态更改为:“我找到了报价”

我想在后台进行该过程,而无需用户刷新页面。我希望在找到新报价时自动更新上下文 [“状态”]。

我试图通过线程来实现这一点,但页面继续加载,因为任务正在运行。

每个想法都值得赞赏。谢谢!

标签: pythondjangoajaxwebbackground

解决方案


在 django 中创建一个自定义结果视图,在您的页面上设置一个计时器,然后使用jQuery.load()

var l_timer = setInterval(function(){
    $( "#result" ).load( "/my_periodic_view", function() {
       alert( "Load was performed." );
    });
},1000) //1000ms loop

你将需要jquery。更好的方法是使用 ajax 调用和 rest api(或取决于特定情况的套接字),但两者都需要在服务器上进行额外设置,如果您的应用程序不需要更多实时更新,则采用加载方法既便宜又容易直截了当。


推荐阅读