【问题标题】:Is there a way I can read XML and display it on a Flask/Python app in real time?有没有办法可以读取 XML 并将其实时显示在 Flask/Python 应用程序上?
【发布时间】:2017-03-20 10:53:33
【问题描述】:

我正在尝试使用 Python - Flask 创建一个 Web 应用程序。为此,我正在从 XML 读取要在 HTML 表中显示的数据。问题是数据不是实时的,因此每当 XML 更改时,我必须停止应用程序并重新执行它。

有没有办法在运行时解析和显示这些数据?

【问题讨论】:

    标签: xml python-2.7 flask


    【解决方案1】:

    至少有两种方法可以实现。

    1. 轮询。这个想法是让浏览器(使用 Javascript)每 N 秒向服务器请求一个新版本的文件。但正如您可以猜到的,这不是绝对“实时”的,因为在您收到更改之前可能会经过一段时间。 N 越少,您收到更改的速度就越快,但对服务器性能的要求也越高。

    优点:相对容易实现

    缺点:需要更多的服务器性能和带宽

    如何实现它:确保打开(并解析 - 如果您在服务器上进行)文件不是在服务器启动时而是在处理“给我 XML”请求时。如果这样做,则无需重新启动服务器即可进行更改,只需在浏览器中刷新页面即可。然后你可以用 JavaScript 编写你的浏览器页面每隔 N 秒刷新一次,像这样

    setInterval(location.reload, N * 1000);
    
    1. 长轮询。更高级的轮询版本。轮询间隔很长,比如 1 分钟,但轮询请求并不常见,因为它们的超时时间很长——比如几分钟。这样的超时允许服务器在那个时间内回答请求。如果在那段时间内没有任何变化,服务器会在它结束时说,客户端(浏览器)将继续长轮询循环的下一次迭代。如果发生了变化,服务器会在那个时候做出响应(发送更改),而客户端会立即收到这些更改。

    好处:需要更少的服务器性能和带宽

    缺点:实现起来相当复杂

    有关长轮询的更多信息,请参阅this question

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多