如何创建一个显示正在不断更新的文件内容的网页?

时间:2015-02-09 21:09:33

标签: javascript python html simulation

我一直在使用python来编写我想出的有趣的小项目代码,而我最近一直在研究的是模拟房子。例如,我创建了一个房子的数据结构,它有三个相互连接的房间,然后我有一个Person对象,可以根据它们的连接方式在房间内移动。这就是它现在所做的一切,而目前为止看到模拟进展的唯一方法是通过我调用的文件" output.txt"程序在每次模拟迭代时打印其状态。该文件列出了房屋中的房间,它们的连接方式以及当前每个房间的人员。这是一个示例输出:

Room: Kitchen
Connections: Living Room, Dining Room
Actors in Room: 
Bob, Sue

Room: Living Room
Connections: Kitchen
Actors in Room:
Joe

Room: Dining Room
Connections: Kitchen
Actors in Room:

我在不久前建立的服务器上写了这一切,所以最终我可以让它运行,看看会发生什么,现在我已经设置好了,所以我可以去一个链接看到文件的内容。我想这样做,所以我可以刷新页面来查看更改,而不是每次我想看到更改时都要打开文件。问题是,有时我认为程序在写入output.txt之间,所以当我刷新页面时没有任何显示。

我想知道是否有某种方法可以使网页只显示程序的输出,甚至无需刷新。以下是我在python程序中写入output.txt文件的方法:

while(True):
    home.tick()
    output = open("/var/www/html/output.txt", "w")
    output.write(str(home))
    output.close()

home.tick()语句基本上遍历了房子里的所有人,并告诉他们通过他们的蜱虫方法,这在这一点上只是让他们在房子里徘徊。然后显示output.txt我有一个带

的html文件
  <h1>House Simulation</h1>

  <pre id="simulationContents"></pre>

  <script>
      function populatePre(path) {
          var xhr = new XMLHttpRequest();
          xhr.onload = function() {
              document.getElementById('simulationContents').textContent = this.responseText;
          };
          xhr.open('GET', path);
          xhr.send();
      }
      populatePre('output.txt');
  </script>

正如我所说的那样,有时可以工作,但有时我认为python在刷新时仍在页面上工作,所以它什么都没有显示。

我是html和javascript的新手,所以任何帮助都会受到赞赏。这对我来说也只是一个有趣的项目,所以如果有更好的方法让输出转到除html和javascript之外的网页,我绝对愿意接受它。提前谢谢!

0 个答案:

没有答案