0

我正在做一个项目,该项目将通过某些方法在平原上为点设置动画。我打算在服务器端计算python中点的移动,并通过javascript库(raphaeljs.com)在客户端进行可视化。

首先我想到了以下几点:运行进程(python)并将点的状态保存到 xml 文件中,而不是从 javascript 加载并可视化。现在我意识到它可能会无限运行,因此我需要在可视化部分和计算部分之间进行实时数据交换。

你会怎么做?

4

1 回答 1

0

首先,我建议使用 JSON 而不是 XML 作为交换格式,在 javascript 端解析 JSON 要容易得多。

然后,谈到你的应用程序的架构,我认为用 Python 编写一个服务器 Web 应用程序来动态生成 JSON 内容比修改和提供静态文件更好(至少通常是这样做的) .

因此,这为我们提供了系统的三个组件:

  1. 客户端应用程序 (javascript)。
  2. 一个 Web 应用程序(无论你喜欢什么框架或库:django、gevent,甚至 Twisted 都可以正常工作,以及其他一些)。它应该做的是,首先,在客户端应用程序请求时将点的状态提供给客户端应用程序,其次,从下一个应用程序接受点状态的更新并将它们存储在数据库中(或全局变量中:很大程度上取决于您如何运行它,当与多进程 Web 服务器一起运行的应用程序应该使用数据库时,单进程 gevent 应用程序可能会使用变量)。
  3. 一个执行计算的应用程序,通过将其发送到 Web 应用程序来定期发布点的状态,可能作为 POST 请求中的 JSON 正文。由于 web 应用程序的典型环境,这很可能应该是一个单独的应用程序:通常在 web 应用程序中执行后台进程是一个问题,无论如何,这可以完成的方式很大程度上取决于您运行的环境你的应用程序。

当然,这种架构是基于“服务器发布数据,客户端请求数据”的模型。该模型简单且易于实现,其主要问题是动画可能不像人们想要的那样流畅。此外,如果某些更改需要紧急更新客户端界面,您也无法立即通知客户端。但是,当 javascript 客户端在浏览器中运行时,通常很难实现流畅性和即时客户端通知。

于 2013-08-13T15:41:26.287 回答