Php FlexJSON自动更新数据网格

Php FlexJSON自动更新数据网格,php,mysql,apache-flex,json,Php,Mysql,Apache Flex,Json,我使用的是Flex4。具有PHP后端和mysql数据库,其中一个表由多行组成 我从结果事件中获取原始数据,并使用JSON对其进行解码。然后,我将数据转储到一个ArrayCollection中,并将其用作datagrid的数据提供程序 我的问题是,当有人在mysql表中插入新行时,我如何判断,这样我就可以自动刷新我的ArrayCollection,从而一次无缝地更新我的datagrid一个元素?现在,这只是一个一次性电话,连接已经关闭。如果有人在数据库中插入新行,我的程序将无法识别,除非我重新启动

我使用的是Flex4。具有PHP后端和mysql数据库,其中一个表由多行组成

我从结果事件中获取原始数据,并使用JSON对其进行解码。然后,我将数据转储到一个ArrayCollection中,并将其用作datagrid的数据提供程序


我的问题是,当有人在mysql表中插入新行时,我如何判断,这样我就可以自动刷新我的ArrayCollection,从而一次无缝地更新我的datagrid一个元素?现在,这只是一个一次性电话,连接已经关闭。如果有人在数据库中插入新行,我的程序将无法识别,除非我重新启动它。我想在mysql数据库中插入一个新行时自动更新AC。有什么方法可以让我“倾听”这个变化吗?

没有,没有自动的方法可以做到这一点。但您可以定期“ping”服务器并请求新行。使用

setInterval(myFunctionName, timeToWaitBetweenEachCallInMilliseconds);

要做到这一点。

不,没有自动做到这一点的方法。但您可以定期“ping”服务器并请求新行。使用

setInterval(myFunctionName, timeToWaitBetweenEachCallInMilliseconds);

要做到这一点。

啊,你偶然发现了web领域的一个古老问题:轮询还是推送

轮询意味着您每隔几秒钟或几分钟对服务器进行一次ping操作,以检查是否有任何数据已更改。如果有,您的服务器将向您发送新更改的数据,这些数据将在前端进行适当的更新。关于如何解释需要更新的数据的“协议”完全取决于您,因为没有真正的标准(因为数据本身可能因系统而异)。如今,在许多不需要关键的“实时”信息的系统中,轮询仍然在使用,而且由于它不需要一致的连接,因此对于像移动设备这样的不可靠的互联网来说,轮询尤其有用。此外,所有内容都是HTTP请求,因此没有企业防火墙可以阻止它

推送意味着您在前端和后端之间有一个恒定的连接,通常通过RTMPT(HTTP UDP协议绕过企业防火墙,但不是100%)。如果您需要实时数据(比如说财务数据)快速交付给您,这将非常棒。但是,用户需要一致的internet连接,并且您需要一台能够处理连接数量和会话管理的服务器。通常,大多数人最终使用Java,因为有许多库可以处理推送(BlazeDS、GRaniteDS、Livecycle、Wowza等)


因为您使用的是PHP,所以可能需要使用轮询作为解决方案,但需要自己实现。我相信有很多库可以帮助你解决这个问题。

啊,你偶然发现了web领域的一个古老问题:轮询还是推送

轮询意味着您每隔几秒钟或几分钟对服务器进行一次ping操作,以检查是否有任何数据已更改。如果有,您的服务器将向您发送新更改的数据,这些数据将在前端进行适当的更新。关于如何解释需要更新的数据的“协议”完全取决于您,因为没有真正的标准(因为数据本身可能因系统而异)。如今,在许多不需要关键的“实时”信息的系统中,轮询仍然在使用,而且由于它不需要一致的连接,因此对于像移动设备这样的不可靠的互联网来说,轮询尤其有用。此外,所有内容都是HTTP请求,因此没有企业防火墙可以阻止它

推送意味着您在前端和后端之间有一个恒定的连接,通常通过RTMPT(HTTP UDP协议绕过企业防火墙,但不是100%)。如果您需要实时数据(比如说财务数据)快速交付给您,这将非常棒。但是,用户需要一致的internet连接,并且您需要一台能够处理连接数量和会话管理的服务器。通常,大多数人最终使用Java,因为有许多库可以处理推送(BlazeDS、GRaniteDS、Livecycle、Wowza等)


因为您使用的是PHP,所以可能需要使用轮询作为解决方案,但需要自己实现。我确信有一些库可以帮助您解决问题。

嗨,迈克,您尝试做的事情叫做comet,或服务器推送。到目前为止,很少有服务器支持这一点。请参阅此请求,了解如何将comet与Apache一起使用。安装完成后,您需要创建一个flex comet桥。如果您有兴趣继续使用此解决方案,请回答,我将为您提供flex comet桥的代码,正如我在某些应用程序中使用的那样,但后端是java。嗨,Mike,您尝试做的事情称为comet或服务器推送。到目前为止,很少有服务器支持此功能。请参阅此请求以了解如何将comet与Apache一起使用。安装完成后,您需要创建一个flex comet桥。如果您有兴趣继续使用此解决方案,请回答,我将为您提供flex comet桥的代码,因为我在某些应用程序中使用过它,但后端是java。