Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
检测实时xml提要中的更改,解析,然后使用php发送到mysql_Php_Xml Parsing_Websocket_Polling - Fatal编程技术网

检测实时xml提要中的更改,解析,然后使用php发送到mysql

检测实时xml提要中的更改,解析,然后使用php发送到mysql,php,xml-parsing,websocket,polling,Php,Xml Parsing,Websocket,Polling,监听live xml提要中的更改、解析文件然后插入mysql数据库的最佳方式是什么。目前,我正在考虑使用ajax和jquery的settimeout或setinterval函数轮询xml文件 我还研究了长轮询技术,这可能会减少我打电话的次数 我是否能够使用websockets来实现这类功能,并且使用php作为后端是否有效 我会设置一个setInterval来查询数据库和XML,然后进行比较,如果有差异,则进行更新 这应该会给你一个想法。设置间隔是一个更简单、不那么突兀的解决方案。在尝试使用We

监听live xml提要中的更改、解析文件然后插入mysql数据库的最佳方式是什么。目前,我正在考虑使用ajax和jquery的settimeout或setinterval函数轮询xml文件

我还研究了长轮询技术,这可能会减少我打电话的次数


我是否能够使用websockets来实现这类功能,并且使用php作为后端是否有效

我会设置一个
setInterval
来查询数据库和XML,然后进行比较,如果有差异,则进行更新



这应该会给你一个想法。

设置间隔是一个更简单、不那么突兀的解决方案。在尝试使用WebSocket时,您可能会发现增加了一层复杂性

虽然如果您愿意,您可以使用checkout,它提供了一种跨浏览器的WebSocket方法,这是非常酷的


我想说,这取决于间隔的频率和使用javascript加载数据的必要性(在页面加载之后)。

这主意不错,所以一步查询两个数据?我将如何实现这个设置两个函数,一个用于从数据库获取数据,另一个用于获取XML。然后将两组数据转换为字符串。从这里开始,只需要一个if语句来比较两者。如果不同,update.multiple setinterval函数对cpu是否苛刻
setinterval
是javascript,这意味着只有在有人加载页面时才会调用它。如果您想让它在用户不查看页面的情况下不断更新,您必须设置一个
Cron
。是的,如果它位于每个页面的header.php中,尽管它会加载,对吗?使用cron时,我的时间间隔将限制在1分钟以上,我需要30秒左右的时间间隔。我已经签出了socket.io,但您不需要使用node.js运行它吗
var time = 50000, //desired update time in milliseconds 
    checkData = setInterval(function(){
var current = queryDB(), //function returns db data in string format 
    live = getLive();    //function gets xml then returns in string format

if (current != live) { updateDB(); }

}, time);