【问题标题】:receive data from a python program to animate an object on a webpage从 python 程序接收数据以动画网页上的对象
【发布时间】:2011-02-12 16:01:27
【问题描述】:

美好的一天stackoverflow! 我不确定你们中是否有人尝试过,但基本上我想完成这样的事情: - 一个 python 程序不断地向我的网站发送数据 - 使用该数据进行计算,网站上的图像是动画的

所以我的问题是: 1.我应该使用什么方法将python与网站通信?越简单越好(尝试阅读 django 并且我的鼻子流血了) 2. javascript 是移动图像的最佳方式吗?还是闪光灯更好? 3. 如果flash更好,是否可以使用python的输入并将其传递给flash?

【问题讨论】:

    标签: python html


    【解决方案1】:

    基本上有两种方法。

    • 池 - 简单地说,它归结为浏览器询问服务器“你有新数据给我吗?”每时每刻。你可以通过Ajax 做到这一点。所有mayor JavaScript 库都有易于使用的Ajax 函数。
    • 实时 - 使用 JavaScript 有两种方法可以做到这一点。 Comet 方法通常意味着长池(您从网络服务器请求一个页面,而不是发送它并关闭连接,服务器会随着时间的推移不断发送数据并且从不关闭连接)。这有点讨厌,但有效。另一种方法是使用 HTML5 API WebSockets,它会在浏览器和服务器之间打开一个真正的 TCP 连接,您可以通过该连接发送数据。

    是的,您可以使用 flash,它类似于WebSockets。我认为它可能更强大,但不要引用我的话。但是你必须学习 Flash,并且可能在 Flash 中制作图像/动画。

    使用哪一个?

    HTML5 之前的 Web 并不是真正打算实现实时连接,因此 HTML5 之前的所有方法或多或少都是黑客行为,有时处理起来很烦人,而且很可能会降低性能。

    如果你只是在玩,我会说 WebSockets 是你要走的路。你需要一个支持它们的现代浏览器。如果您需要支持旧版浏览器,则必须使用其他方法。

    Flash 可以,但它需要插件,而且很可能无法在移动设备上运行。它也是一种您需要学习/支持的新语言。有些人可能会阻止它。

    Python

    如果您选择了上述方法之一,只需在 Google 上添加 python 关键字即可。有很多 Python 库。与示例相同。

    最容易实现的可能是 Ajax 池,因为您只是请求一个网页。只需获取一个简单的 Python Web 框架,例如 Bottle,您就可以立即准备好。

    Comet 也很简单,但是长时间保持连接打开以及有多个此类连接时可能会出现一些问题。您应该抓住其中一个 Comet 实现,而不是尝试自己解决这个问题。看看这个 - Python Comet Server

    WebSockets 和 Flash 将要求您在 python 中编写一个单独的服务器/脚本来提供数据。有一些在线可用,您只需插入逻辑即可。

    【讨论】:

    • 非常感谢您抽出宝贵时间回复!我先看看ajax,然后再看看comet。
    【解决方案2】:

    图片不会显示在“您的网站上”,而是显示在“您用户的浏览器中”。

    浏览器需要从你的网站请求动画信息,需要从(无论它来自哪里)请求。理想情况下,网站会缓存数据,以便 20 个浏览器请求只产生一个网站请求。

    • 这些信息与实时的接近程度如何?
    • 它来自哪里?它是您可以在网络服务器上运行的服务吗?
    • 浏览器需要多久更新一次?

    您应该查找有关 AJAX 的信息(让浏览器从网站发出异步请求)。

    【讨论】:

    • 您好先生早上好! (1、3)数据每 1 秒左右发送一次,如果可能的话,我也希望更新同时发生(2)python 数据来自我运行网络服务器的同一台计算机
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-09-04
    • 1970-01-01
    • 2020-12-30
    • 1970-01-01
    • 2014-06-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多