2015-09-02 2 views
0

У меня есть функция яваскрипта под названием каждые 30 секунд:Кто-то может объяснить это странное поведение?

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 с размером х kbyte, но после второго 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++ сделает все остальное. Надеюсь, это вам поможет

Смежные вопросы