Как зарегистрировать PHP-файл, запущенный с JQuery AJAX в консоли браузера?

У меня есть файл PHP, который выполняет обработку данных. Это управляется $.ajax()иногда для больших файлов, обработка которых занимает много времени. Мне нужно зарегистрировать некоторую информацию о текущем процессе в консоли браузера, которая отображается на ходу, не только когда PHP-файл закончил работу.

Из проведенного мною исследования я понял, что есть две трудности:

  1. Получение PHP, чтобы выложить что-то, прежде чем это сделано
  2. Получение jQuery / JS для отображения на ходу

По адресу № 1 я пробовал:

echo "started"."<br>";

foreach (array("done this", "done that","had a coffee","burp") as $msg) {
sleep(3);
echo $msg."<br>";
flush();
ob_flush();
}

flush(); ob_flush(); должен делать работу, хотя, как вы можете проверить Вот он не отображает строго 3 секунды, как ожидается. Любое предложение, чтобы заставить его отображать, как ожидалось?

Что касается решения № 2, я исследовал решение, включающее XMLHttpRequest, но я не знаком с предметом, поэтому не уверен ни в том, что искать, ни в правильном ли направлении …

Вот тестовый код того, что я пытаюсь запустить:

$("#run").click(function(e) {
$.ajax({
url: "http://constances-web-dev.vjf.inserm.fr/constances-web/ajax-test.php",
xhr: function() {
// get the native XmlHttpRequest object
var xhr = $.ajaxSettings.xhr();
xhr.addEventListener('readystatechange', function(e) {
console.log(e)
});
// set the onprogress event handler
//xhr.onprogress = function(evt){ console.log(evt.target.response) } ;
// set the onload event handler
return xhr;
},
success: function(msg) {
console.log(msg);
},
error: function(msg) {
console.log("Erreur: " + msg);
}
})
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id="run">go</button>

3

Решение

В качестве обходного пути я добавил журнал в файл в моей функции write2log

static function log2File($string, $logFileName) {
if (substr($string,0,1 ) == "\n")
exec("echo '".date('Y-m-d_H:i:s')." ".addslashes(substr($string,1))."' >> ".$logFileName,$output,$status);
else
exec("echo -n ".addslashes($string)."' >> ".$logFileName,$output,$status);
}

Я могу тогда tail -f логи смотреть как идут дела

но это требует доступа SSH к серверу так
я все еще был бы заинтересован выяснить, как войти в консоль

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]