Как отобразить загружаемое изображение GIF или сообщение, пока PHP выполняет командный файл? - PullRequest
1 голос
/ 09 июня 2011

Я искал в сети ответ, но не смог найти.

Как я могу показать некоторые сообщения о загрузке или gif, пока выполняется долго выполняемый скрипт.Я протестировал несколько различных способов, таких как javascript, потому что мой сценарий пытается использовать PLINK.exe для создания файла, а для возврата значения требуется около 30 секунд.потому что это однострочный код, я не могу использовать flush (), есть ли другой способ, как я могу сделать это?

<?php
$runCommand  = "C:\wamp\www\TS\batch\plink.exe Sever -l User \"ssh User@Server 'tail -600 /serverlog/test.log'\" ";
$results=system($runCommand);
//exec($runCommand, $results); 
echo $results;
?>

Ответы [ 3 ]

4 голосов
/ 13 июня 2011

Я попробовал следующий код, который дал мне именно то, что я хочу. страница отображает «loading.gif» при загрузке сценария php и скрывает его после завершения сценария. Это использует JQuery.


//$tr_arname=$_REQUEST['arname'] -> is the variable i've got from previous PHP page.

<body onload="loadingAjax('myDiv');">

<script>
var arname="<?php $tr_arname=$_REQUEST['arname']; echo "$tr_arname"; ?>";
function loadingAjax(div_id)
{
    $("#"+div_id).html('<center><img src="images/loading.gif"><br><br><font color="#006699" face="arial" size="4"><b>Loading arerror.log <br><?php echo "$tr_arname"; ?> <br>Please Wait ...</b></font></center>');
    $.ajax({
        type: "POST",
        url: "ThePHPScriptPage.php",
        data: "arname=" + arname,
        success: function(msg){
            $("#"+div_id).html(msg);
        }
    });
}
</script>

<div id="myDiv"></div>
</body>
2 голосов
/ 09 июня 2011

Вы можете запросить свой php-файл с другой веб-страницы, используя AJAX. Затем ваш javascript отображает loading.gif, пока сервер не ответит на запрос.

Вы можете использовать jQuery для этого: http://api.jquery.com/load/

0 голосов
/ 09 июня 2011

Вы не можете сделать это, используя только PHP, так как это выполнение на стороне сервера (страница / сценарии отображаются на сервере до того, как пользователь увидит что-либо в своем браузере)

Вы должны поместить свой сценарийв отдельном файле, а затем выполните вызов AJAX.

Чтобы отобразить загрузочное изображение, выполните следующие действия (необходима структура jQuery)

http://jquery -howto.blogspot.com / 2009/04 / display-loading-gif-image-while-loading.html

// SHOW YOUR LOADING GIF HERE
$('#result').load('yourscript.php', function() {
 //HIDE YOUR LODAING GIF HERE
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...