检测实时xml提要中的更改,解析,然后使用php发送到mysql
监听live xml提要中的更改、解析文件然后插入mysql数据库的最佳方式是什么。目前,我正在考虑使用ajax和jquery的settimeout或setinterval函数轮询xml文件 我还研究了长轮询技术,这可能会减少我打电话的次数检测实时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
我是否能够使用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);