我有一个仪表板,可以按设定的间隔播放视频。 它还可以从谷歌分析和谷歌分析实时获取一些数据,以便在谷歌地图上显示。 为此,它使用谷歌地图javascript api和谷歌分析报告php api。 视频位于单独的js文件中。 地图(和实时数据)在一个单独的php文件中。 分析数据也在一个单独的php文件中。
现在,我遇到的问题是,目前我只是使用< ?php include)('filename.php'); ?>
将它们包含在index.php
中。
哪个有效,它输出我想要的数据,地图和视频。
但现在我想每15秒更新一次这个信息。
我尝试了一些while{ do something; sleep()}
,但这会产生错误,因为它会重新声明以前的功能,例如analytics()
。
我还尝试了一些JavaScript setInterval()
并以这种方式包含文件,但这也不起作用。由于所有功能都在这些文件中,我将如何完成它每15秒更新一次?
我也尝试了一些GET请求,但我并不只是想要这些信息,因为所有功能(例如地图和图表)都在这些文件中,所以简单的数据返回也不起作用
所以我想要的是:每15秒重新加载(就像刷新页面时一样).php
个文件。
我不想实际刷新页面,因为这也会重置JavaScript视频脚本,这是我不想要的。
我已经阅读了有关cronjob
的一些内容,是否可以在设定的时间间隔内运行.php文件,并且index.php
(包括其他.php文件)会自动更新那样呢?
答案 0 :(得分:0)
这里最好的选择是将PHP包装在iframe中,然后每隔15秒重新加载一次iframe:
const reloadFrame = () =>
document.getElementById('some_frame_id').contentWindow.location.reload();
setInterval(reloadFrame, 15000);
你遇到的问题是PHP渲染都是服务器端处理的,所以简单地在服务器上抛出一个GET请求将返回整个渲染页面。除非我当然误解了这个问题,你的filename.php
文件只会返回更新地图的数据,在这种情况下,只需编写函数来更新地图并使用setTimeout
递归调用它
答案 1 :(得分:0)
<meta http-equiv="refresh" content="15">
只需在html标题中添加
for cronjob
# crontab -e
00 15 * * * /usr/local/bin/php /home/john/myscript.php