如何通过连续的AJAX调用来维护PHP对象

时间:2014-07-17 09:42:53

标签: javascript php ajax serial-port

我正在使用一些屏幕按钮编写一个用于控制串口的php页面。当我按下一个按钮时,它会通过串口发送一些数据并显示其响应。这一切都运转正常。

现在,我需要不断收听串口,以便接收我没有要求的数据。我正在尝试使用javascript中的计时器,但每次我通过AJAX执行PHP代码时,串口重新启动并刷新其缓冲区。我需要在完成PHP代码的执行之前将控制串口的对象传递给javascript代码。当按下按钮时,我需要将此对象传递给新的PHP代码。

我该怎么做?

非常感谢

4 个答案:

答案 0 :(得分:0)

结帐:http://php.net/manual/en/language.oop5.serialization.php 您应该传递序列化对象,或者为了在会话之间保持串行对象存活,将其存储在文本文件中。在AJAX端,将其存储为Global [WINDOW] variable。如

window.serialphpobject = data;

然后在下一个AJAX调用中使用此数据

{object: window.serialphpobject}

所有例如显而易见的是,如果没有看到您的代码,我就无法完全适应它。

答案 1 :(得分:0)

首先在代码中创建一个全局js变量。 当你第一次进行ajax调用时,然后在你的js变量中存储响应。

所以每当你需要通过ajax传递那个全局js变量时。

您可以使用

创建窗口级别js全局变量
window.myVariable="";

确保在发送任何js请求之前定义此变量

答案 2 :(得分:0)

  

我需要在完成PHP代码的执行之前将控制串口的对象传递给javascript代码。当按下按钮时,我需要将此对象传递给新的PHP代码。

此解决方案容易受到攻击。您应该将信息保存在PHP会话中。

http://php.net/manual/en/session.examples.basic.php

答案 3 :(得分:0)

我发现这是不可能完成的:当PHP代码完成执行时,串口会自动关闭,所以我丢失了所有收到的数据,直到我再次打开端口。