Javascript ajax等待文件更改

2024-04-27 02:54:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在编程一个网站来控制我的树莓派机器人。我用.py脚本驱动两个步进电机,我称之为:

^{1}$

第一个参数是要走的路,第二个参数是要做多少步,最后一个参数是步骤之间的延迟。在

脚本打开位置.txt锉刀(看起来像“100/50/18”),坐标x=100,y=50,Alpha=18度。然后移动,计算新的坐标并将其写入此文件。在

阅读脚本顶部的部分:

^{pr2}$

然后进行所有请求的移动和计算,最后将新的X,Y,Alpha保存回文件:

 fo =open("location.txt", "w")
 fo.write(str(X)+"/"+str(Y)+"/"+str(Alpha))
 fo.close

好吧,这在腻子里很完美,但现在我想让我的机器人通过网站,所以我制作了网站来控制它。在

但现在我有个问题。现在我有了这样的网站:

HTTP --> Javascript --> PHP --> .PY script to move robot.

这是可行的,但我不知道如何刷新X,Y,Alpha坐标位置.txt在我的网站上。我有个主意:

Javascript run.PY并等待它完成,然后JS open.txt并获取数据,最后为我的网页设置新的坐标。但我不知道怎么做。这个等待。PY结束了我的命。在

谢谢你的帮助! 狂吠2

附言

我在我的Raspberry Pi上安装了apache,我可以通过网页加载.py脚本,并且可以打开.txt文件。在


Tags: 文件pyalphatxt脚本网页参数网站
1条回答
网友
1楼 · 发布于 2024-04-27 02:54:50

传统的网络方法是从客户那里进行投票,直到你被告知有变化。在

例如

  • 调整文件,使其包含更新的日期和时间。在
  • 实现一个PHP脚本打开文件并将内容作为JSON对象提供(更新日期,X、Y和Alpha作为属性)
  • 加载页面时,加载位置并存储所有4个组件。在
  • 向服务器发送移动指令时,开始轮询更改—定期重新加载JSON对象,直到更新日期已更改的JSON对象。然后可以停止轮询。在
  • 然后应该存储此更新位置并用于更新页面。在
  • 设置轮询的最大次数并在达到最大值时中止。在

假设你的主页包含

<div id="locationInfo" />

您已经实现了PHP脚本获取位置信息.php返回如下JSON对象:

^{pr2}$

在主页面中,可以使用jQuery创建一个脚本,该脚本将

$.get( "getLocationInfo.php", function( data ) {
  var html = 'Location: ' + data.x_position + ', ' + data.y_position + ' @' + data.alpha
  $( "#locationInfo" ).html( html );
});

上面真正缺少的是在更新日期发生更改时,会反复轮询并中止。在

这里有一个简单的轮询示例,@johnny craig:jQuery, simple polling example

在这些例子中,只要需要一个退出条件,因为一旦你有了所需的数据(通过更新日期的变化来识别)

它可能会工作,实现起来非常简单,但是会受到来自web页面的大量无用请求的影响。不过,请记住,网络在这种情况下已经工作了很长一段时间了。在

或者,你可以获取所有关于它的HTML5并在websockets上阅读。使用websockets,您可以从服务器端,而不是客户端启动更新。所需的轮询更少,客户端的响应时间应该更好。在

以下是一些基本知识:

相关问题 更多 >