一尘不染

使用Flask实施强制页面刷新的最佳方法是什么?

flask

背景
我有很多字段,这些字段将通过外部进程实时更新。我想定期更新Flask托管页面,以向连接的用户显示任何更改。理想情况下,整个页面不会刷新,这是对类似系统的抱怨,而只是更新页面上的许多字段。

当前方向
我目前的想法是使用可能的JavaScript来处理此问题,但是我不确定使用Flask时是否甚至可以实现。

Flask或第3方模块是否可以实现此目的?

其他信息
数据将使用各种套接字和串行端口进行更新。每个接口将在其自己的线程中运行并更新共享内存。请注意,Flask / Web界面具有对共享内存的只读写入,可以由其他线程更新。

客户总人数不得超过20人。这是测试系统的Web界面,通常在任何给定时间只有1-5个人连接到该系统。


阅读 858

收藏
2020-04-07

共1个答案

一尘不染

为了避免刷新整个页面,你需要使用AJAX。看起来这很容易在flask中实现。

由于你希望它定期发生,因此需要从javascript中的计时器函数调用AJAX函数。

这意味着你只需将flask页面中的javascript放入计时器调用中即可。

这大概是javascript的样子:

setInterval(                               //Periodically 
  function()
  {
     $.getJSON(                            //Get some values from the server
        $SCRIPT_ROOT + '/get_values',      // At this URL
        {},                                // With no extra parameters
        function(data)                     // And when you get a response
        {
          $("#result").text(data.result);  // Write the results into the 
                                           // #result element
        });
  },
  500);                                    // And do it every 500ms
2020-04-07