Witam, pierwszy post :]
Napisałem sobie na prawdę prosty skrypt z formularzem w php, za pomocą którego mogę skanować sobie na urządzeniach w sieci.
Problem w tym, że podczas wykonywania skanu (f. exec()) do momentu zakończenia user nie wie czy coś się dzieje czy nie i jego zachowanie może być nieprzewidywalne...
Nie jestem webmasterem, więc i biegły w php nie jestem, naczytałem się, że w AJAXie można wyświetlić gifa podczas wczytywania/wysyłania/robienia czegokolwiek przez skrypt na serwerze...Tylko po przeczytaniu paru tutorali dalej nie wiem jak zgrabnie i możliwie prosto to wykonać...

EDIT:
oto do czego doszedłem, niestety dorzucenie w funkcji Skanuj() onLoading wysypuje również funkcję Pokaz()...
formularz i skrypt przetwarzający:

 
<html>
<head>
<meta http-equiv='Content-type' content='text/html; charset=utf-8' />

<script type='text/javascript' src='advajax.js'></script>
<script type='text/javascript'>

function Pokaz() {
  advAJAX.get({
    url : 'scanner_status.php',
    parameters : {
       'skanery' : document.getElementById('skanery').value
    },
    onSuccess : function(obj) {
       document.getElementById('status').innerHTML = obj.responseText;
    }
  });
}

function Skanuj(frm) {
  advAJAX.get({
    url : 'skan.php',
    parameters : {
       'skanery' : frm.skanery.value,
       'plik' : frm.plik.value
    },
    onSuccess : function(obj) {
      document.getElementById('status').innerHTML = obj.responseText;
    }
  });
}

</script>

</head>
<body>
    <center>
    <br />
    <br />
    <br />
    <br />
    <h1>skanery by seba</h1>
    <br />
    <br />
<!--    <form action='skan.php' method='GET'> -->
    <form onsubmit='Skanuj(this); return false'>
        wybierz skaner... <select name=skanery id='skanery' onchange='Pokaz()'>

<?php
$wynik = exec("lpstat -v | cut -d':' -f3",&$tablica);

for($i=0; $i<(sizeof($tablica)); $i++){
    $nazwa = exec("lpstat -v | grep $tablica[$i] | cut -d' ' -f3 | tr -d ':'");
    echo ("<option value=$tablica[$i]> $nazwa");
    }
?>

       </select><br/>
       <br/>
       nazwa pliku wyjściowego... <input type=text name=plik><br>
       <br />
       <div id='status'></div>
       <input type=submit value='Skanuj'><br/>
    </form></center>
</body>
</html>

Dodam, że funkcje w tej postaci działają poprawnie, znaczy tak jak chcę (bez animacji ładowania).

skan.php


<?php

$plik=$_GET['plik'];
$scan_dev=$_GET['skanery'];

if (empty($plik)) $plik="skan";

$full_output_file="/srv/www/htdocs/sanewi/tmp/".$plik.".jpg";
$output_file=$plik.".jpg";
$tmp_file="/srv/www/htdocs/sanewi/tmp/tmp.tmp";
$command = "scanimage -d hpaio:".$scan_dev." --resolution 300 >".$tmp_file." && convert ".$tmp_file." jpeg:".$full_output_file.


#echo ($command);
exec($command);
#echo ("<a href=\"/sane/tmp/$output_file\">$output_file</a>");
**//header('Content-Type: application/octet-stream');
//header('Content-Disposition: attachment; filename='.$output_file);
//readfile($full_output_file);**
//exec("rm $full_output_file");
echo("zeskanowano");

 

Gdy formularz był przetwarzany tylko przez php, po zeskanowaniu dzięki pogrubionym liniom dostawałem monit o zapis utworzonego pliku. gdy skorzystałem z przetwarzania przez ajax, nie wiem jakich mechanizmów użyć, by działało to w podobny sposób...