- Ad -
php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here!

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 13-12-2008, 09:15
Nordin
 Registrierter Benutzer
Links : Onlinestatus : Nordin ist offline
Registriert seit: Aug 2005
Ort: DE / S-A
Beiträge: 396
Nordin ist zur Zeit noch ein unbeschriebenes Blatt
Standard Preloder im Mainbereich

Hallo,

ich sehe es neuerdings immer öffter das in Webseite eine Art Preeloader arbeitet.

Sprich alles was schnell aufgebaut wird wie Kopf und navi, ist sofort da und das andere zb. der Mainbereicht der etwas länger braucht läd mit ein (ich denke) rotierenden gif welches für knapp eine sekunde zu sehen ist... und dann erst erscheid der mainbereich fertig.

Aber wie geht das?
Ist es in PHP nicht so das von oben nach unten alles gelesen wurd und dann zum Schluß ausgegeben wird?

Der Aufbau einer PHP Datei sieht bei mir meist in etwa so aus:

PHP-Code:
<?php

$seite 
'<div>das ist der header</div>';
$seite .= '<div style="float:left">das ist die navi'>;
$seite .= '<div>das ist der mainbereich'>;
$seite .= '<div style="clear:both">das ist der footer'>;

echo 
$seite;

?>
Aber wenn ich es so mache wird ja erst alles in einer Variable gespeichert und am ende ausgegeben oder sollte ich ab und ann ein echo einfügen das die seite in mehrreren Abschnitten angezeigt wird?

Beispiel:

PHP-Code:
<?php

$seite 
'<div>das ist der header</div>';
$seite .= '<div style="float:left">das ist die navi'>;
echo 
$seite;
$seite '<div>das ist der mainbereich'>;
$seite .= '<div style="clear:both">das ist der footer'>;

echo 
$seite;

?>
Ich denke wenn ich es mit dem echo mache wird sicher der schnelle header und die navi angezeigt und der mainbereich (wo zum beispiel eine externe seite gecrawlt wird) kommt dann später nach.
Aber was ist dann mit dem Footer? Der wird ja dann auch erst angezeigt wenn der Mainbereich fertig ist bzw. der includete crawler fertig ist.

Oder mache ich das falsch?

Gruß Nordin
Mit Zitat antworten
  #2 (permalink)  
Alt 13-12-2008, 11:01
UzumakiNaruto
 Registrierter Benutzer
Links : Onlinestatus : UzumakiNaruto ist offline
Registriert seit: Nov 2004
Ort: Hannover
Beiträge: 584
UzumakiNaruto ist zur Zeit noch ein unbeschriebenes Blatt
UzumakiNaruto eine Nachricht über ICQ schicken UzumakiNaruto eine Nachricht über MSN schicken UzumakiNaruto eine Nachricht über Yahoo! schicken
Standard

das sieht eher nach ajax aus das auf den webseiten läuft.

wenn ich meine private seite so angucke verhält sie sich genauso wie du beschrieben hast.
den content den ich mit der ajax technik lade brauch ein wenig länger als der rest
__________________
Gruß
Uzu
Mit Zitat antworten
  #3 (permalink)  
Alt 13-12-2008, 12:30
Nordin
 Registrierter Benutzer
Links : Onlinestatus : Nordin ist offline
Registriert seit: Aug 2005
Ort: DE / S-A
Beiträge: 396
Nordin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

hmm ok.
Mit ajax hatte ich noch nie zu tun...
Muss ich mich wohl mal mit auseinander setzten.
Mit Zitat antworten
  #4 (permalink)  
Alt 15-12-2008, 18:24
Nordin
 Registrierter Benutzer
Links : Onlinestatus : Nordin ist offline
Registriert seit: Aug 2005
Ort: DE / S-A
Beiträge: 396
Nordin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Soo jetzt hab ich mich mal mit ajax beschäftigt.

Das ergibniss ist ein simples script....
Code:
 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <title>Ajax Beispiel 001</title>
  <script type="text/javascript">
  <!--
	var request = false;

	// Request senden
	function setRequest(id) {
		// Request erzeugen
		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) {}
			}
		}
		// überprüfen, ob Request erzeugt wurde
		if (!request) {
			alert("Kann keine XMLHTTP-Instanz erzeugen");
			return false;
		} else {
			var url = "post.php";
			// Request öffnen
			request.open('post', url, true);
			// Requestheader senden
			request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
			// Request senden
			var nickname = document.getElementById(id).value;
			request.send('name='+nickname);
			// Request auswerten
			request.onreadystatechange = interpretRequest;
		}
	}

	// Request auswerten
	function interpretRequest() {
		switch (request.readyState) {
			// wenn der readyState 4 und der request.status 200 ist, dann ist alles korrekt gelaufen
			case 4:
				if (request.status != 200) {
					alert("Der Request wurde abgeschlossen, ist aber nicht OK\nFehler:"+request.status);
				} else {
					var content = request.responseText;
					// den Inhalt des Requests in das <div> schreiben
					document.getElementById('content').innerHTML = content;
				}
				break;
			default:
				break;
		}
	}
  //-->
  </script>
 </head>
 <body>
 <form action="" method="post">
  <input id="test" type="text" value="" /><input type="button" value="suchen" onclick="javascript:setRequest('test');" /> 
  <div id="content"></div>
</form>
 </body>
</html>
in der post.php steht:

PHP-Code:
<?php

header
('Content-Type: text/html; charset=utf-8');
header('Cache-Control: must-revalidate, pre-check=0, no-store, no-cache, max-age=0, post-check=0');

sleep(2);

echo 
$_POST['name'];

?>
Das sleep() hab ich drin weil ich probieren wollte wie ich eine Art Preloader einbauen kann ich dachte das ich irgendwie den readyState 1 abrufen kann aber irgendwie wird das nichts

Wie müsste ich das script erweitern?
Das zum Beispiel der Text "bitte warten..." da steht bis der text aus dem inputfeld erscheind?



Gruß Nordin

Geändert von Nordin (15-12-2008 um 18:32 Uhr)
Mit Zitat antworten
  #5 (permalink)  
Alt 15-12-2008, 19:10
Nordin
 Registrierter Benutzer
Links : Onlinestatus : Nordin ist offline
Registriert seit: Aug 2005
Ort: DE / S-A
Beiträge: 396
Nordin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

O hab einen Ansatz hinbekommen:

Habe folgendes
Code:
document.getElementById('content').innerHTML = 'bitte warten...';
nach
Code:
			// Request auswerten 
			request.onreadystatechange = interpretRequest;
eingefügt.

Ist das so korrekt?
Scheind jedenfalls zu funktionieren.
Mit Zitat antworten
  #6 (permalink)  
Alt 15-12-2008, 19:12
krel
 Registrierter Benutzer
Links : Onlinestatus : krel ist offline
Registriert seit: Nov 2006
Ort: Osnabrück
Beiträge: 424
krel ist zur Zeit noch ein unbeschriebenes Blatt
Standard

na einfach den gewünschten Text in dein div packen
PHP-Code:
<div id="content">Bitte warten</div
Mit Zitat antworten
  #7 (permalink)  
Alt 15-12-2008, 21:23
Nordin
 Registrierter Benutzer
Links : Onlinestatus : Nordin ist offline
Registriert seit: Aug 2005
Ort: DE / S-A
Beiträge: 396
Nordin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ups *g* danke!

// Edit
Und was ist wenn das style des div geändert werden soll?
Mit Zitat antworten
  #8 (permalink)  
Alt 16-12-2008, 08:58
ezkimo
 Registrierter Benutzer
Links : Onlinestatus : ezkimo ist offline
Registriert seit: Apr 2005
Ort: Beckum / Westf.
Beiträge: 211
ezkimo befindet sich auf einem aufstrebenden Ast
ezkimo eine Nachricht über ICQ schicken
Standard

Dann machst Du das über CSS

Code:
document.getElementById('content').className = 'meinNeuerStyle';
oder so:

Code:
document.getElementById('content').style.display = 'block';
Also einfach über die Style Variante ansprechen. Wobei die Vergabe von CSS Klassen sicherlich vorteilhafter ist, wenn es sich um umfangreichere Style Eigenschaften handelt.
__________________
MM Newmedia | MeinBlog
Mit Zitat antworten
  #9 (permalink)  
Alt 16-12-2008, 10:42
Nordin
 Registrierter Benutzer
Links : Onlinestatus : Nordin ist offline
Registriert seit: Aug 2005
Ort: DE / S-A
Beiträge: 396
Nordin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

super! Danke.
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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


PHP News

MariaDB 5.5 veröffentlicht
MariaDB 5.5 veröffentlichtDie freie MySQL-Alternative MariaDB wurde in der stabilen Version 5.5.23 veröffentlicht und soll einige Verbesserungen gegenüber Oracles Communityversion von MySQL mitbringen.

16.04.2012 | Berni

Deutsche Yii Framework Community
Deutsche Yii Framework CommunitySeit dem 19.03.2012 gibt es für die Yii PHP Framework Community ein deutsches Zuhause.

20.03.2012 | dhcomputer

 

Aktuelle PHP Scripte

Advanced Login ansehen Advanced Login

Login-System und Kundenverwaltung, die sich spielend leicht in bestehende Webseiten einbauen lässt und einen enormen Funktionsumfang bietet. Ihre eigene Webseite muss mit Advanced Login nicht umständlich an ein fertiges System angepasst werden.

25.05.2012 Madden | Kategorie: PHP/ Kundenverwaltung
BROM CMS/BelCal 3 ansehen BROM CMS/BelCal 3

Spezielles CMS für Betreiber von Ferienwohnungen. Komplette Seitenerstellung online, Verwaltung mehrerer Objekte, Reservierungssystem mit sofortigem Abgleich im Belegungskalender und vieles mehr bietet dieses Content Management System.

25.05.2012 belcal2 | Kategorie: PHP/ CMS
belbit LiveSupport Script ansehen belbit LiveSupport Script

Schnellen und unkomplizierten Support im LiveSupport-Chat anbieten. Ohne Datenbank und in wenigen Sekunden installiert.

24.05.2012 EichbaumMedia | Kategorie: PHP/ Chat
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 09:17 Uhr.