我每隔30秒就调用一次javascript函数:
function getOutput() {
sleep(30000);
setInterval(function(){
getRequest(
'prova1.php', // URL for the PHP file
drawOutput, // handle successful request
drawError // handle error
);
return true;
},30000);
prova1.php文件执行一个命令,打开包含json格式文本的两个页面并将它们保存在本地存储库中,带有json文件的页面大约每20秒由c ++程序更新一次:
<?php
exec(" wget http://127.0.0.1:8082/Canvases/Fe0_Cbc0_Calibration/root.json -O provami1.json");
exec(" wget http://127.0.0.1:8082/Canvases/Fe0_Cbc1_Calibration/root.json -O provami2.json");
?>
发生的奇怪事情是,当我在第一时间查看代码的执行时,脚本保存文件provami1.json和provami2.json,大小为x kbyte,但是在第二次provami2.json变为0之后空。如果是最后一次运行,并且c ++程序终止,则两个文件都包含正确的数据。我真的不明白为什么会这样。希望有人可以提供帮助。
答案 0 :(得分:0)
我认为这里的问题是AJAX是异步的,所以在从请求中得到任何响应之前你会返回true。
尝试以这种方式调试:
function getOutput() {
sleep(30000);
setInterval(function(){
getRequest(
'prova1.php', // URL for the PHP file
drawOutput, // handle successful request
drawError // handle error
// Also debug here the response from the request.
);
console.log('2');
return true;
},30000);
答案 1 :(得分:0)
检查用户是否具有写入权限,并尝试使用带有附加选项的wget,即wget -o logfile URL -a。 我认为如果你使用wget来检索数据,那么PHP可以选择这样做,你可以使用CURL或file_get_content来获取数据并写入文件。之后你的c ++编程将完成剩下的工作。希望这会对你有所帮助