2015-09-02 74 views
0

我叫每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文件的網頁更新由C++程序大約每20秒:

<?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"); 

?> 

即happends的是,當我看到在第一時刻代碼的執行腳本保存文件provami1.json和provami2.json與x的大小奇怪的千字節,但在第二個provami2.json變爲0並且是空的。如果是最後一次運行,並且C++程序終止,則兩個文件都有正確的數據。我真的不明白爲什麼它會發生。希望有人能幫忙。

+6

這裏'C++'在哪裏? –

回答

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); 
0

檢查用戶有寫權限或沒有,並嘗試使用wget與附加選項即wget的-o日誌文件URL -a。 我認爲如果您使用wget來檢索數據,那麼PHP可以選擇這樣做,您可以使用CURL或file_get_content來獲取數據並寫入文件。之後你的C++ prog會完成剩下的工作。希望這能幫到你

相關問題