php.de

Zurück   php.de > Webentwicklung > JavaScript, Ajax und mehr

JavaScript, Ajax und mehr dynamisches Scripten und Interaktion auf Clientebene

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 06.12.2011, 11:02  
Neuer Benutzer
 
Registriert seit: 15.09.2011
Beiträge: 7
PHP-Kenntnisse:
Anfänger
<Hotte> befindet sich auf einem aufstrebenden Ast
Standard "Bitte warten" anzeigen, solange ein Shell-Skript läuft.

Hallo!

Ich habe eine PHP generierte Seite. Wenn man auf einen Button klickt, wird ein Ajax-Request erzeugt.

Code:
<input type="button" value="Skript starten!" onClick="setRequest()"/>

Dieser Ajax-Request ruft eine weitere PHP-Seite auf, mit folgendem Code:


PHP-Code:
$output shell_exec("/usr/local/bin/shell_skript.sh");
echo 
"$output"
Es wird also ein Shell Skript aufgerufen welches auf dem Server liegt, (Das Skript benötigt ca 10 Sekunden zum Durchlaufen!) anschließend wird die Ausgabe des Skriptes mittels "echo" ausgegeben.

So... das Problem: Wenn ich nun auf den Button klicke, dann passiert 10 Sekunden lang gar nichts, erst dann erscheint die komplette Ausgabe auf dem Bildschirm.

Wie kann ich es realisieren, dass entweder:
- Die Ausgabe des Skriptes sofort Stück für Stück auf dem Bildschirm erscheint (Also wie wenn man das Skript auf der Konsole eingeben würde. Da erscheint auch Zeile für Zeile und nicht alles auf einmal)

oder

- Dass während das Skript arbeitet eine Sanduhr oder "Bitte Warten" Meldung o.Ä. erscheint, dass der User weiß dass im HIntergrund etwas passiert.


mfg
Hotte








P.S.
Hier der Code der JS-Funktion, welche die PHP Seite mit dem Skript aufruft...

Code:
function setRequest(){
		if (window.XMLHttpRequest) {
			request = new XMLHttpRequest(); // Mozilla, Safari, Opera
		} else if (window.ActiveXObject) {
			try {
				request = new ActiveXObject('Msxml2.XMLHTTP'); // IE 5
			} catch (e) {
				try {
					request = new ActiveXObject('Microsoft.XMLHTTP'); // IE 6
				} catch (e) {}
			}
		}
		if (!request) {
			alert("Kann keine XMLHTTP-Instanz erzeugen");
			return false;
		} else {
			var url = "ajax_sync.php";
			request.open('post', url, true);
			request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');            
			request.send(null);            
			request.onreadystatechange = interpretRequest;		
		}
	}

	// Request auswerten
	function interpretRequest() {
		switch (request.readyState) {
			case 4:
				if (request.status != 200) {
					alert("Der Request wurde abgeschlossen, ist aber nicht OK\nFehler:"+request.status);
				} else {

					var content = request.responseText;
					document.getElementById("sync_erg").innerHTML = content;              
				}
				break;
			default:
				break;
		}
	}
<Hotte> ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 06.12.2011, 11:29  
Erfahrener Benutzer
 
Registriert seit: 25.01.2009
Beiträge: 1.027
PHP-Kenntnisse:
Fortgeschritten
Capfly befindet sich auf einem aufstrebenden Ast
Capfly eine Nachricht über ICQ schicken Capfly eine Nachricht über MSN schicken
Standard

Stichwort flush.
__________________
MfG
~Capfly
Jetzt NEU! Cpix & Wbits Katahlan.de - Das Browsergame
Capfly ist offline   Mit Zitat antworten
Alt 06.12.2011, 12:06  
Erfahrener Benutzer
 
Benutzerbild von lstegelitz
 
Registriert seit: 07.09.2009
Beiträge: 4.005
PHP-Kenntnisse:
Fortgeschritten
lstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nett
Standard

Es reicht doch schon, VOR dem absetzen des Requests "Bitte warten..." in den HTML Bereich zu schreiben, der später das Ergebnis aufnehmen soll.
Code:
		} else {
// document.getElementById("sync_erg").innerHTML = 'Bitte warten...';
			var url = "ajax_sync.php";
			request.open('post', url, true);
			request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');            
			request.send(null);            
			request.onreadystatechange = interpretRequest;		
		}
__________________
Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.
lstegelitz ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Prozessorauslastung fällt während Skript läuft (unter Ubuntu) k3kz PHP-Fortgeschrittene 12 13.05.2011 13:59
[Erledigt] mysql_query() mit SQLDump princemichi PHP Einsteiger 4 07.03.2011 22:33
set_time_limit wird ignoriert bei shell aufruf->Script läuft ewig! fridhi PHP-Fortgeschrittene 6 24.08.2008 00:45
Beim Upload ein Fenster "Bitte warten" anzeigen DaniGro PHP Tipps 2006 8 05.11.2006 15:42
Läuft Skript auf PHP/4.0.6 und generelle fragen PHP Tipps 2007 5 20.11.2005 13:05
Php Skript läuft auf neuerer Version nicht PHP Tipps 2005-2 17 21.08.2005 18:18
Skript &amp;amp;amp;quot;tarnen&amp;amp;amp;quot;? Off-Topic Diskussionen 17 07.08.2005 19:42
"Bitte Warten" Fenster HTML, Usability und Barrierefreiheit 9 07.11.2004 05:34
SKRIPT GESUCHT - Werbung auf einer site anzeigen Beitragsarchiv 4 29.08.2004 14:07
"Bitte warten" bei Upload HTML, Usability und Barrierefreiheit 1 24.06.2004 21:17
Alle SQL-Befehle in einem Skript anzeigen PHP Tipps 2004 3 21.06.2004 13:46

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
ajax warte ausgabe, ajax shell script, shell script sanduhr, ajax skript upload warten, formular sanduhr bis sql response, html auf php script warten, sanduhr mit java anzeigen, php seite im hintergrund aufrufen bitte warten, php erst laden bitte warten dann anzeigen, php abwarten, php solange, script läuft ewig, shellscript ausgabe wartefunktion, onclick sanduhr anzeigen, ajax shell meldung, mit ajax shellskript ausführen, shell script einige sekunden warten, php funktion abwarten, php shell script ausführen und auf anwendung warten, bash script in php html anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 11:52 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum